首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么将一个16进制的数,解析成有符号的整数

2013-09-09 
如何将一个16进制的数,解析成有符号的整数比如 0xFF -127对于转换的过程我明白,但就是不知道用什么函数可

如何将一个16进制的数,解析成有符号的整数
比如 0xFF =-127       对于转换的过程我明白,但就是不知道用什么函数可以得到这个结果,再赋给一个变量

[解决办法]

引用:
0xFF 的二进制是 11111111,转化成有符号的整数 ,由于最高位是1 ,所以是个负数 ,剩下7位的值是127

.....补码不是这样算的,有2种方法算:
1、0xFF=-1*2^8+(2^7+2^6+……+2^0)=-128+127=-1
2、负数时,最高位取符号-1,然后剩下7位取反就是000 0000 加1(正数不加1),所以还是-1
[解决办法]
强制转换即可,0xff是-1才对:
unsigned char a = 0xff;
char b = (char)a;

引用:
比如 0xFF =-127       对于转换的过程我明白,但就是不知道用什么函数可以得到这个结果,再赋给一个变量

[解决办法]
引用:
0xFF 的二进制是 11111111,转化成有符号的整数 ,由于最高位是1 ,所以是个负数 ,剩下7位的值是127

计算机中,一般用补码表示数据。最好是按照通用标准来,不要标新立异了。

热点排行