一个二进制文件 94 0b 00 00
我定义了一个Longword变量取这个二进制文件的前四个字节,数字显示是2964,我算了下2964的十六进制是OB94,这里就有点搞不清楚了,怎么和二进制文件的次序不一样呢?按我想想么应该是是940B0000,而是940B0000转换出来却是-1811218432,显然不对,请问各位大侠什么意思,这个问题解决了我在问下一个问题!
我定义了一个Longword变量取这个二进制文件的前四个字节,数字显示是2964,我算了下2964的十六进制是OB94,这里就有点搞不清楚了,怎么和二进制文件的次序不一样呢?按我想想么应该是是940B0000,而是940B0000转换出来却是-1811218432,显然不对,请问各位大侠什么意思,这个问题解决了我在问下一个问题!
解决方案 »
- 如何通过DELPHI取得网页中的连接,我要疯了,请救救我。
- 在delphi中如何格式化U盘成fat16格式
- 有关查询中的时间问题
- 对ListView中的记录排序
- 数据库查询问题
- 如何将一个WORD类型的变量赋给一个两个BYTE的数组?在线等。
- 高份相赠!!!有人用DELPHI做过GIS吗?????
- 在有delphi client/server suite版本,并且本机有网卡的单机环境下,能不能制作并测试多层数据库?
- List index out of bounds(0)这是什么错误啊?
- 我怎样使菜单中的某一项不可用?(具体情况内祥)
- pascal中 文件可否改变标题变量来多次读入呢?
- delphi可以实现这种界面不?
94 0b 00 00
它们对应的内存的地址是从低到高递增的,比如
111 112 113 114这样看,文件中的次序跟内存中的其实一样。
而在取Longword的值的时候,高地址在前,低地址在后,所以就变成了00 00 0b 94。更直观的,你可以把它们读取到byte数组里,次序是一致的!
d:integer;
s:string;d:=$940b0000;
s:=format('%d',[d]);
var
d:integer;
s:string;
begin
d:=$b94;
s:=format('%d',[d]);
ShowMessage(s);
end;
http://www.cppblog.com/chaosuper85/default.html?page=1194 0b 00 00 Windows下应该这么看“00 00 0B 94”