16进制FFFF转换为十进制 为-1 为什么?

2024-10-30 12:39:20
推荐回答(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