我想问一下,-1以十六进制形式输出,结果为什么是ffff?

来源:百度知道 编辑:UC知道 时间:2024/05/09 16:17:20
我想问一下,-1以十六进制形式输出,结果为什么是ffff?

f代表什么??为什么输出结果是字母而不是数字????

在计算机里,所有的东西都是用2进制储存的。
1在2进制中就是1。负号在2进制里是最高位为1。-1在2进制中是16个1(在单字的情况下)
通俗点说,就是正1的加上负的1的和应该是一个1后面16个0,(10000000000000000)
因为单字的时候只有16位,所以就变成16个0了(首位溢出了)。此时正好为0。和我们理解的10进制的加法一样。
故-1在16进制中是0xffff,-2是0xfffd

ffff是补码表示,f是十六进制里的15,负数的补码是把绝对值按位取反末位加一形成的,-1的绝对值是0000 0000 0000 0001,按位取反为1111 1111 1111 1110,末位加一是1111 1111 1111 1111,即ffff

十六进制的16个数字:0123456789ABCDEF,没有负号
4位十六进制-1就是ffff