编程C++中怎么转化啊??求高手解答!!!详细点吧。。谢谢啊!!!

2024-11-24 16:15:32
推荐回答(2个)
回答(1):

unsigned short a=65535;//a=0xffff=1111111111111111B
short int b=a;//有符号数0xffff=-1
short int a=-2;//a=0xfffe=11111111111111110B
无符号数0xfffe的10进制值是65534

计算机内整数的负数补码表示,请自行参考补码,原码,反码知识!

回答(2):

usigned short a= 65535 16进制是0xFFFF
0xFFFF=11111111 11111111
转换成有符号型是个负数,符号位不变,其余取反后在末位+1,
变成 (1)0000000 00000001=-1
a=-2 16进制是0xFFFE
转换成二进制0xFFFE=11111111 11111110
转换成无符号就是65534