数据为4个字节的16进制ASC2码,既为2个字节的二进制数,且为补码表示(最高位为符号位,负数的绝对值为补码取反加1,正数为它本身2字节)且数据高字节位在前,低字节位在后。
我想知道,我得到这条数据以后,如果它表示的是负数,我怎么得到它的10进制表示?
我想知道,我得到这条数据以后,如果它表示的是负数,我怎么得到它的10进制表示?
解决方案 »
- 如何获取最小化的窗口句柄?
- delphi2006的tool palette中怎么没有AxtiveX项啊?
- 如何将txt文本插入SQL2000数据库
- 急急急!!如何在fastreport中预览显示出数据库中的jpg图片字段?????????????????
- 请教各为大虾定点数表示范围的问题!
- 一个简单的问题,
- 帮帮忙!SOCKET
- 帮忙!!!!!
- 求支持中文,并且可以帖图可以插入表格的richedit类型的控件
- 如何将一个Dataset产生的数据集添加到ComboBox里(在线等待),谢谢!!!
- 请问哪里有Tras类下载?
- 有没有人做过支持skin的程序的?其实只要窗体边框可以用图片来修饰就可以了
比如这个数据为 E 3 B F 3 7 4 B
那么用二进制表示为: 1110 0011 1011 1111 0011 0111 0100 1011
取反得到: 1001 1100 0100 0000 1100 1000 1011 0100
加一得: 1001 1100 0100 0000 1100 1000 1011 0101
即: - 1 C 4 0 C 8 B 5
9 C 4 0 C 8 B 5 为其原码!
比如我得到的数据为00D7 1、我在程序中怎么判断它是正数还是负数?
2、如果它是负数,我在程序中怎么得到它的绝对值,比如实际的数为-21。我怎么得到这个21?
你将16进制数转换为2进制数就可以看出正负了。
除去最高符号位,然后用BCD码就可以将十六进制数转换为十进制数了