以下内容是个人理解,如果有说的不对的地方,欢迎指正!
首先我们需要了解一下以下的内容(也是看的网上各种帖子,有书的同学建议多看看书上怎么说的): 1、二进制的原码、反码和补码,以int类型为例 原码:最高位是符号位(1表示负数,0表示正数),剩余位就是数值位,用二进制表示。 反码:正数的反码与原码相同,负数的反码除符号位以外,其他位取反,即0变成1,1变成0。 补码:正数的补码与原码相同,负数的补码为其反码+1。 正零和负零的补码相同。 我们以十进制的1和-1为例。假如都是整型int类型。 1的原码:00000000 00000000 00000000 00000001 1的反码:00000000 00000000 00000000 00000001 1的补码:00000000 00000000 00000000 00000001 -1的原码:10000000 00000000 00000000 00000001 -1的反码:11111111 11111111 11111111 11111110 -1的补码:11111111 11111111 11111111 11111111 2、有符号数据在计算机中是以补码的形式存储的 3、unsigned无符号类型二进制中没有符号位,全是数值位 比如:二进制 10000000 00000001转换成有符号的short是-1,但是转换成unsigned short是32769(2^15+1) 4、负数的二进制怎么转换为十进制:每个位取反(包括符号位&
|