数学建模社区-数学中国
标题:
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实现),其中涉及到很多进制之间的相互转换:
/ r6 T. U' }; H9 x x# l, Z/ \
十六进制(字符串)<==>二进制(数字)
! r4 K: G1 u. u7 [: N. i
而MATLAB能实现的功能是
9 S- E5 _0 C6 Q* q7 v
1.十六进制(字符串)<==>十进制(数字):
/ Y: \6 k2 [) G Z; b E
函数:dec2hex和hex2dec
& T0 _: s9 O; }& C( x
2.十进制(数字)<==>二进制(字符串)
9 P( M% p/ ^2 e d
函数:dec2bin和bin2dec
2 w) M( u/ }) @! u; ^# w/ S/ f
本来想用matlab固有的函数进行十六进制(字符串)<==>二进制(数字),无奈二进制结果是字符串形式,也就是说,如果利用matlab固有函数做的话,最后还得把字符串形式的二进制数化成数组形式的二进制数。个人感觉这样太麻烦了,索性自己写了两个子函数,以便加密算法中随时调用:hex_to_binary 和 binary_to_hex。就在附件里面。虽然是一个很细节的东西,但是还是希望对大家有所帮助(PS:在下第一次发这种帖子,以前都是在社区里面分享别人的东西,现在不管好不好,先倒腾点东西出来吧!望大家多多支持!)
" l! K" O$ z8 i# E2 o5 H% c
% L" b: H& l. v) F9 K! D _
" j4 s* O' G/ t( V+ ~8 @' s& O
作者:
chenxiao6395
时间:
2013-7-22 07:36
收啦,楼主继续加油!能不能加好友?
作者:
他乡之客
时间:
2014-5-5 21:58
拿过来看看,不晓得有没有用
作者:
yaocaiyu
时间:
2015-5-7 12:31
感谢
y7 L! c4 J5 M8 C8 c2 D9 [
作者:
ct395603
时间:
2015-8-6 11:13
这个正是我想要的,非常感谢
0 Z' F' v% d+ u* M
作者:
2249039642
时间:
2017-11-12 16:50
支持一下。。。。。。。
, P! `0 \) W1 Y0 C5 A
作者:
2459598212
时间:
2023-2-24 14:51
* \6 G' B) |6 b6 t. h# f% Q
W+ r- O1 d1 w/ e# i
: {7 m. i; ?2 r p; m- \) ~7 |& |) f
感谢分享
- P+ e, a" u9 l( a' P$ Q
作者:
2459598212
时间:
2023-2-24 15:35
2 q7 i% c( Z% ?. M
1 Z: M7 H, _6 I* \* }( |
# N* Y' A' O! l7 Q4 R! t
二进制转十六进制结果不对,因为没把字符的转换成数值类型的:使用str2num~
+ K( U% e, _6 p
function out=binary_to_hex(in)
+ v( g, K9 F! }
n=length(in);
+ _. y3 l' L$ o" m3 q( H6 Q; I
for i=1:n/4
* X2 P3 Q* a" H8 i' O: r% e
%字符ascii中0=48,1=49
$ E" M" ?8 c) o/ W- ?
%str2num:将字符转化为数值类型
; k! t% z% f) f6 [
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));
" N7 q% e6 Q: g: t1 l0 f3 q
out(i)=dec2hex(out(i));
Q q* m; t" H( `$ j: D
end
' @ _0 S- Y* `+ D# n- u
out=char(out);
1 i& L& K: F( `# Z! {2 W+ H: B
end
" s) i0 C3 H9 X% \# ?9 {
. S2 d- ^7 F* P3 K$ b
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5