数学建模社区-数学中国
标题:
MATLAB中2进制与16进制数据之间的相互转化
[打印本页]
作者:
654010905
时间:
2012-4-2 11:59
标题:
MATLAB中2进制与16进制数据之间的相互转化
hex_to_binary.m
(599 Bytes, 下载次数: 37)
2012-4-2 11:57 上传
点击文件名下载附件
十六进制(字符串)到二进制(整数数组)
下载积分: 体力 -2 点
binary_to_hex.m
(202 Bytes, 下载次数: 39)
2012-4-2 11:56 上传
点击文件名下载附件
二进制(整数数组)到十六进制(字符串)
下载积分: 体力 -2 点
最近老师交给我一个任务,要求实现DES,AES等分组密码算法(用MATLAB实现),其中涉及到很多进制之间的相互转换:
[1 Q- j4 \- G, P# X
十六进制(字符串)<==>二进制(数字)
5 f! F3 u7 i+ o1 ]* E4 s4 f
而MATLAB能实现的功能是
0 j5 X; \- ?/ X8 z! t2 F
1.十六进制(字符串)<==>十进制(数字):
2 A% Q+ b, ?1 p& {
函数:dec2hex和hex2dec
, v2 C# N* M; B& E9 _3 V
2.十进制(数字)<==>二进制(字符串)
5 t) U% x# z6 H3 k1 r
函数:dec2bin和bin2dec
, x, g' Z9 A) M( t
本来想用matlab固有的函数进行十六进制(字符串)<==>二进制(数字),无奈二进制结果是字符串形式,也就是说,如果利用matlab固有函数做的话,最后还得把字符串形式的二进制数化成数组形式的二进制数。个人感觉这样太麻烦了,索性自己写了两个子函数,以便加密算法中随时调用:hex_to_binary 和 binary_to_hex。就在附件里面。虽然是一个很细节的东西,但是还是希望对大家有所帮助(PS:在下第一次发这种帖子,以前都是在社区里面分享别人的东西,现在不管好不好,先倒腾点东西出来吧!望大家多多支持!)
e D+ B6 G0 W1 E" A
! z8 M0 z, m) h6 ?0 Z
0 C8 `4 W/ g# ^( k
作者:
chenxiao6395
时间:
2013-7-22 07:36
收啦,楼主继续加油!能不能加好友?
作者:
他乡之客
时间:
2014-5-5 21:58
拿过来看看,不晓得有没有用
作者:
yaocaiyu
时间:
2015-5-7 12:31
感谢
8 h' [+ T! Z- o: e# z, j
作者:
ct395603
时间:
2015-8-6 11:13
这个正是我想要的,非常感谢
. S8 g9 y0 U0 P7 b& E; H* d' k
作者:
2249039642
时间:
2017-11-12 16:50
支持一下。。。。。。。
/ [+ o3 p6 T! {' P8 O1 f
作者:
2459598212
时间:
2023-2-24 14:51
" G# T2 Z) f7 C0 ] s
/ I5 e5 N1 R7 W" y
- d7 `3 u0 U( _8 L
感谢分享
' h- [* Z$ {) S9 A, j# J
作者:
2459598212
时间:
2023-2-24 15:35
0 _; i# d2 m- J2 a: w& V
6 @6 Y |1 `, _8 C! Y$ D& P' U
3 i, v0 ^" C' M, o; u
二进制转十六进制结果不对,因为没把字符的转换成数值类型的:使用str2num~
5 T1 w+ K; K: Q9 ^( X ^2 W
function out=binary_to_hex(in)
\' ]) W0 e; B, p3 d- @- D/ @8 |7 j
n=length(in);
, K! H2 S, b: J0 ^, P5 I: T# S8 k
for i=1:n/4
# R) M: N6 q! ~4 M
%字符ascii中0=48,1=49
, q0 Q$ c% G I4 C# l' l8 I, t$ I7 ?
%str2num:将字符转化为数值类型
3 ^1 T5 F# ^7 I
out(i)=str2double(in((i-1)*4+1))*8+str2double(in((i-1)*4+2))*4+str2double(in((i-1)*4+3))*2+str2double(in((i-1)*4+4));
+ {4 [! l M& R3 K1 r7 e
out(i)=dec2hex(out(i));
. J% c1 L1 @! S$ p" Z: \
end
4 U1 k# E7 t1 l$ C$ X4 e
out=char(out);
1 ^9 U; |% \! `# q
end
5 W7 Z0 M& B1 S b
& Z% Y. q( _* i% v+ A9 {/ f
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5