数学建模社区-数学中国
标题:
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实现),其中涉及到很多进制之间的相互转换:
. f$ }5 \% D" n A& {1 Q
十六进制(字符串)<==>二进制(数字)
* }3 j* U5 ^: s% p
而MATLAB能实现的功能是
8 ] @9 [6 J1 T# }# l1 k
1.十六进制(字符串)<==>十进制(数字):
; a5 C$ l: d4 m
函数:dec2hex和hex2dec
- p. d3 W: A" {5 C
2.十进制(数字)<==>二进制(字符串)
( w( A2 v h- o6 C
函数:dec2bin和bin2dec
0 D" C8 P G! k1 C1 n1 X4 K! F% F
本来想用matlab固有的函数进行十六进制(字符串)<==>二进制(数字),无奈二进制结果是字符串形式,也就是说,如果利用matlab固有函数做的话,最后还得把字符串形式的二进制数化成数组形式的二进制数。个人感觉这样太麻烦了,索性自己写了两个子函数,以便加密算法中随时调用:hex_to_binary 和 binary_to_hex。就在附件里面。虽然是一个很细节的东西,但是还是希望对大家有所帮助(PS:在下第一次发这种帖子,以前都是在社区里面分享别人的东西,现在不管好不好,先倒腾点东西出来吧!望大家多多支持!)
( r: F3 |6 E& R1 L" w, p. G( R
# ~4 V5 c4 }( K& z" p
" q8 w( M. G* Z7 X$ T7 R; k5 ?, ]/ }
作者:
chenxiao6395
时间:
2013-7-22 07:36
收啦,楼主继续加油!能不能加好友?
作者:
他乡之客
时间:
2014-5-5 21:58
拿过来看看,不晓得有没有用
作者:
yaocaiyu
时间:
2015-5-7 12:31
感谢
0 b: l7 N9 g4 ]9 O- f) k
作者:
ct395603
时间:
2015-8-6 11:13
这个正是我想要的,非常感谢
1 } x- G7 `, e
作者:
2249039642
时间:
2017-11-12 16:50
支持一下。。。。。。。
8 M' O" T' K# L) Q* F4 |
作者:
2459598212
时间:
2023-2-24 14:51
0 i+ f. z O+ }3 b
3 v& b! [% x" e. e! a4 |
8 C3 Y- B7 m# D9 Y
感谢分享
- V8 Z9 d$ i. b% V: r1 O
作者:
2459598212
时间:
2023-2-24 15:35
$ \) r9 t7 p, R, A8 [
2 v) ]/ b; n3 J. j! |
! Y) `6 F/ F/ ?) |* M6 Z- C
二进制转十六进制结果不对,因为没把字符的转换成数值类型的:使用str2num~
# x" l0 V! ~0 f2 d4 A
function out=binary_to_hex(in)
% b2 o( ^0 y) w) m! c3 N; @. e" B
n=length(in);
5 l+ S+ F7 I1 V- q1 P& m
for i=1:n/4
. ]* P% ]. D2 b9 A$ T& n) U9 h, t
%字符ascii中0=48,1=49
% p; y# t3 H8 R
%str2num:将字符转化为数值类型
9 U* P" D6 M* t# P# D J; _
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));
- H& W$ W- Q1 o" D( q3 ?
out(i)=dec2hex(out(i));
3 ?7 B) U' G A N% ? B
end
0 R4 _9 q$ L5 T* q7 y; b/ t
out=char(out);
; u$ X& n4 Q( p; e
end
0 ^$ D T( Z$ z/ K
/ b5 B( q$ b) U2 k$ u M+ b
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5