1.把十进制数字拆分成多个2的整数次方之和,把每个拆分结果单独转换成二进制,最后把所有转换结果合并。
85 = 64 + 16 + 4 + 1 = 2^6 + 2^4 + 2^2 + 2^0 = 0100 0000 + 0001 0000 + 0000 0100 + 0000 0001 = 0101 01012.把十进制数字不停除以2,然后把所有余数倒着写。
103 **** ***1 51 0*** ***1 25 00** ***1 12 000* ***0 6 0000 ***0 3 0000 0**1 1 0000 00*1 0 0000 0000 结果是0110 0111使用上述两种办法转换得到的二进制表示形式叫做原码。 所有非负数的原码、反码、补码相同。 负数: 反码是全部按位取反。 补码 = 反码 + 1。 计算机中实际存储的二进制表示形式是补码。
把二进制表示形式中从右向左每三个数位分成一组,每组用一个0到7之间的数字代替。(十六进制则是4位一组,用英母’a’到’f’(‘A’到’F’)表示每组中10到15这六个不同的数字) 二进制 0101 1110 八进制 01 011 110 136 十六进制 0101 1110 5E 程序中可以直接用八进制方式表示数字,必须在前边加0:0136表示是八进制。前面加0x或0X表示十六进制:0x5E。
使用%o做占位符可以把整数的八进制表示形式打印在屏幕上。 使用%x或%X做占位符可以把数字的十六进制表示形式打印在屏幕上。%x打印的英文字母都是小写的,%X打印的都是大写的。
