数学建模社区-数学中国
标题:
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实现),其中涉及到很多进制之间的相互转换:
& X( Q8 L9 L8 v# R/ d! u& X, t% R
十六进制(字符串)<==>二进制(数字)
2 i+ E/ R3 z8 \/ s0 h o5 m" B
而MATLAB能实现的功能是
( x' b) E% Z/ B
1.十六进制(字符串)<==>十进制(数字):
; z" Y: ?1 W; `* h
函数:dec2hex和hex2dec
, P' A4 T) u8 c: X* g
2.十进制(数字)<==>二进制(字符串)
: {# Q4 s2 e! g
函数:dec2bin和bin2dec
d& G2 S _# N- d0 D
本来想用matlab固有的函数进行十六进制(字符串)<==>二进制(数字),无奈二进制结果是字符串形式,也就是说,如果利用matlab固有函数做的话,最后还得把字符串形式的二进制数化成数组形式的二进制数。个人感觉这样太麻烦了,索性自己写了两个子函数,以便加密算法中随时调用:hex_to_binary 和 binary_to_hex。就在附件里面。虽然是一个很细节的东西,但是还是希望对大家有所帮助(PS:在下第一次发这种帖子,以前都是在社区里面分享别人的东西,现在不管好不好,先倒腾点东西出来吧!望大家多多支持!)
' b0 I. x0 p f
$ z# c/ }, x$ b8 H6 U9 s1 Q
! S& A0 R3 u' q% Y) L* S/ d
作者:
chenxiao6395
时间:
2013-7-22 07:36
收啦,楼主继续加油!能不能加好友?
作者:
他乡之客
时间:
2014-5-5 21:58
拿过来看看,不晓得有没有用
作者:
yaocaiyu
时间:
2015-5-7 12:31
感谢
) r- U' D# M# t6 \! R
作者:
ct395603
时间:
2015-8-6 11:13
这个正是我想要的,非常感谢
! g6 t Z* \7 A1 I8 x, |
作者:
2249039642
时间:
2017-11-12 16:50
支持一下。。。。。。。
5 v, I/ w# L% x" P3 L2 [
作者:
2459598212
时间:
2023-2-24 14:51
6 f4 y# A- q: Z" n; m1 B* ?$ \
6 ^1 b$ E) n# ~% c1 ?6 i+ i
( H7 h& |: ]9 H1 S# F1 A( w
感谢分享
# ^$ ^- I! `5 I* a9 N
作者:
2459598212
时间:
2023-2-24 15:35
z+ z! ~. V' C6 u& i& ^
% D1 z2 R9 {- `
3 O. l% V4 V% m$ h5 |
二进制转十六进制结果不对,因为没把字符的转换成数值类型的:使用str2num~
( H. Z8 X& N0 M. x, `
function out=binary_to_hex(in)
; R; D; v5 A2 o, R9 v+ u0 o
n=length(in);
! k8 F$ J# l+ E+ f/ N# g
for i=1:n/4
' t$ t/ {' E5 G
%字符ascii中0=48,1=49
, w! E& a% b% b" L$ C$ O( k; Y
%str2num:将字符转化为数值类型
: {, k# E0 {3 m1 [/ c
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));
# m9 B- F3 F0 d& e5 n/ T' r& K$ W0 z
out(i)=dec2hex(out(i));
, R$ ?2 s/ H9 W) k! k# N
end
6 f6 y; W% \5 P1 E
out=char(out);
. ?7 ^6 F" v) W0 N8 P
end
+ D& r, `1 E! i& [' ^3 u: H5 k
m, _# Z4 \6 ^
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5