有符號整數的最高位為1就是負數,為0就是正數或0。以16位整數為例(括號裡面的數字表示進位制):
0000000000000000(2) = 0(10) = 0000(16)
0000000000000001(2) = 1(10) = 0001(16)
……
0000000000001111(2) = 15(10) = 000F(16)
0000000100000000(2) = 256(10) = 0100(16)
0111111111111111(2) = 32767(10) = 7FFF(16)
1000000000000000(2) = -32768(10) = 8000(16)
1000000000000001(2) = -32767(10) = 8001(16)
1111111111111111(2) = -1(10) = FFFF(16)
可以看出來,最大數和最小數之間就是一線之隔,分界線就在於最高位是1還是0。
另外,當所有位為0是0,而所有位為1則是-1,所以0和-1是絕對意義上的相反數,這也就是為什麼在很多程式設計語言中-1等價於True(真),0則等價於False(假)。
有符號整數的最高位為1就是負數,為0就是正數或0。以16位整數為例(括號裡面的數字表示進位制):
0000000000000000(2) = 0(10) = 0000(16)
0000000000000001(2) = 1(10) = 0001(16)
……
0000000000001111(2) = 15(10) = 000F(16)
……
0000000100000000(2) = 256(10) = 0100(16)
……
0111111111111111(2) = 32767(10) = 7FFF(16)
1000000000000000(2) = -32768(10) = 8000(16)
1000000000000001(2) = -32767(10) = 8001(16)
……
1111111111111111(2) = -1(10) = FFFF(16)
可以看出來,最大數和最小數之間就是一線之隔,分界線就在於最高位是1還是0。
另外,當所有位為0是0,而所有位為1則是-1,所以0和-1是絕對意義上的相反數,這也就是為什麼在很多程式設計語言中-1等價於True(真),0則等價於False(假)。