16进制FFFF转换为十进制 为-1 为什么?
1个回答
展开全部
十六进制0xFFFF可以代表 无 符号数字为 65535;
十六进制0xFFFF可以代表 有 符号数字为 -1.
有符号数,是按照补码的形式存放的.
0xFFFF写成二进制,共有16个1.
最高位代表符号,1,代表“-”号;
后面的15位,需要“求反加一”才是绝对值,这15个1,即可求出绝对值是1.
所以,把十六进制0xFFFF转换成十进制就等于-1.
或者:
0xFFFF :
要想转换为十进制,可以先转换为二进制,即1111 1111 1111 1111
最高位为符号位,1代表负数
你的问题相当于求其真值,公式为除过符号位其他位取反加一,即
1111 1111 1111 1111 ->1000 0000 0000 0000 ->1000 0000 0000 0001他就是十进制-1
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询