为何16进制的负整数写入文件后变成了浮点数
如何把负数以16进制格式写入文件中?matlab产生了一个数据向量,数据中包含负数
希望把这些数据写入一个文件中保存,要求是把数据写成16进制表示(用16bit)
例如,向量data中的数据是10进制的:100,200,-4(对应的十六进制表示为:64,c8,fffc)
我要在data.txt中保存为64c812c 格式
我用了如下命令
fid=fopen('data.txt','w');
m=fprintf(fid,'%x\n',data);
fclose(fid)
我需要的结果是
64
c8
fffc
为什么保存出来结果是
64
c8
-4.000000e+000
也就是说正整数表示是正确的,负数却表示成了浮点
请问这是什么原因有什么办法解决?
[ 本帖最后由 eight 于 2008-2-14 09:45 编辑 ] 原帖由 iiiooo 于 2008-2-13 15:05 发表 http://www.chinavib.com/forum/images/common/back.gif
如何把负数以16进制格式写入文件中?
matlab产生了一个数据向量,数据中包含负数
希望把这些数据写入一个文件中保存,要求是把数据写成16进制表示(用16bit)
例如,向量data中的数据是10进制的:100,200,-4 ...
help fprintf 一下,看看 %x 能否控制小数的位数 不明白你的意思
这跟小数的位数有什么关系?
能解释的详细点吗? 原帖由 iiiooo 于 2008-2-14 11:55 发表 http://www.chinavib.com/forum/images/common/back.gif
不明白你的意思
这跟小数的位数有什么关系?
能解释的详细点吗?
估计这些转换函数不支持负数,你 help dec2hex 就知道了。负数的话,自己编程写一个吧 好像是不支持负数
看来是没有现成的函数了
只能自己编了
多谢帮忙
页:
[1]