数学建模社区-数学中国
标题:
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实现),其中涉及到很多进制之间的相互转换:
; X1 B: k$ R* K4 h
十六进制(字符串)<==>二进制(数字)
. E; W" {4 r, b& r/ i. ]
而MATLAB能实现的功能是
4 g! n- L; C' `; z) l
1.十六进制(字符串)<==>十进制(数字):
, U; L2 A, L. n: A) I
函数:dec2hex和hex2dec
$ M8 u5 T! W5 Z; [4 \" @
2.十进制(数字)<==>二进制(字符串)
" l* p7 i. @) w8 G
函数:dec2bin和bin2dec
3 q1 b" f8 a# V& Y) R7 t% S
本来想用matlab固有的函数进行十六进制(字符串)<==>二进制(数字),无奈二进制结果是字符串形式,也就是说,如果利用matlab固有函数做的话,最后还得把字符串形式的二进制数化成数组形式的二进制数。个人感觉这样太麻烦了,索性自己写了两个子函数,以便加密算法中随时调用:hex_to_binary 和 binary_to_hex。就在附件里面。虽然是一个很细节的东西,但是还是希望对大家有所帮助(PS:在下第一次发这种帖子,以前都是在社区里面分享别人的东西,现在不管好不好,先倒腾点东西出来吧!望大家多多支持!)
( ]: f2 h0 T& `# K0 G' K- V6 V
0 j, ^, c; P3 L
- ~& q& Y8 L; Y) g- M
作者:
chenxiao6395
时间:
2013-7-22 07:36
收啦,楼主继续加油!能不能加好友?
作者:
他乡之客
时间:
2014-5-5 21:58
拿过来看看,不晓得有没有用
作者:
yaocaiyu
时间:
2015-5-7 12:31
感谢
0 A7 Z+ {7 s3 Z3 l) Q' `
作者:
ct395603
时间:
2015-8-6 11:13
这个正是我想要的,非常感谢
' M7 N1 ?0 ^5 G3 O, ?
作者:
2249039642
时间:
2017-11-12 16:50
支持一下。。。。。。。
; O4 c9 w8 `6 [' E' f) x" o
作者:
2459598212
时间:
2023-2-24 14:51
8 q, F) `% b0 n0 G/ l: Y( R
3 {% u, }0 t3 v; P8 B5 K
* j7 z% w. l1 D$ |8 M! V% j
感谢分享
2 p$ Q! i! C- k7 z, @; b" q
作者:
2459598212
时间:
2023-2-24 15:35
+ @; m2 d* T9 A0 C# I
. M* p/ `0 r& J; ^# _5 [6 l
. O0 X% J) {1 n4 v! s* a% E% }
二进制转十六进制结果不对,因为没把字符的转换成数值类型的:使用str2num~
: [+ M4 e9 B, q7 x
function out=binary_to_hex(in)
# T2 h8 o. _$ o+ M7 D
n=length(in);
+ K( c, e6 M2 E1 ^7 O; C" L+ X8 N
for i=1:n/4
+ e8 q5 L. n2 b& p
%字符ascii中0=48,1=49
( d6 S8 s: h1 d; k" v' a
%str2num:将字符转化为数值类型
; H7 d3 Z* j! {: Q3 f3 r+ T
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));
! G; R; u" _0 o0 P
out(i)=dec2hex(out(i));
4 v* e( L+ `' N! J4 {% s% f1 R
end
6 g$ h' |+ L) \8 ?
out=char(out);
5 I3 f8 K% W' A3 S U
end
5 N( s! O4 }3 x. F" H V# C' z
: g3 v: L' Q3 r8 x$ Z
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5