登录论坛

查看完整版本 : [MATLAB基础] matlab如何对一个十六进制按位读取?


molly2009
2009-07-18, 15:02
我现在得到一个hex形式的数据‘13’,想按位读取到a(1),a(2)中,使得a(1)=1,a(2)=3,我该如何实现?

silas_xue
2009-07-19, 21:53
lz 说说我的个人意见
不知道我理解的是否清楚 lz说的'13'是存储为16进制的数据 对应的10进制值为13对么?
直截了当的途径是 可以先考虑转化为十进制 然后对10取余 并存储
当然 也可以从16进制方面考虑 不过要进行取余后的整理
希望可以对你有些帮助


Thx for reading.
PS:若还算满意,直接点击“Thanks”,再次登陆时亦便于查看回答是否真的帮到你了。
通过点击本人帖子旁边的ID 可以使用“发送悄悄话给silas_xue”与我进行联系
个人观点 仅供参考 多多交流 相互学习

molly2009
2009-07-20, 11:30
谢谢楼上的回答,我所说的‘13’是hex形式的数据,其对应的十进制是19。我用的方法是先用bitget按位取出来,然后再用一for循环得到正确的排列顺序,然后将前四个数字转换成了字符串的形式,这时得到的是二进制,再转换成十进制,再转换成hex形式,这时得到了1,储存在a(1)中。但是这样太麻烦,有没有简单的方法?

silas_xue
2009-07-21, 03:42
lz 我想你这样做没有问题 把hex和二进制数直接对应起来 就会少不少麻烦 lz可以通过matlab的help搜索一下hex( )和hex2dec( )两个函数及相关说明 希望可以对你有些帮助

molly2009
2009-07-21, 10:29
我查了一下,matlab里面没有hex2bin这个函数,也没有bin2hex函数

yhcode
2009-07-22, 10:25
没有的话可以自己写吗,呵呵!取出m进制的每位数可以直接按取余数来操作呀。

molly2009
2009-07-22, 15:17
您能举个例子给我吗?我网上找了下matlab关于取余的函数,有rem和mod两个,具体是用哪个?

silas_xue
2009-07-23, 04:21
lz 不知道你使用的是什么版本的matlab
2007b中是有hex2dec( ) 这个函数的
你可以再确认一下