进制转换

进制包括 二进制 八进制 十进制 十六进制

二进制(BIN)转十进制(DEC)

将二进制数按权展开相加得十进制数 举例:10010 的十进制为 18 微信图片_20180325163222

十进制(DEC)转二进制(BIN)

除 2 取余,逆序排列。 举例: 666 的二进制为 1010011010 微信图片_20180325163207

二进制(BIN)转八进制(OCT)

从右向左,每三位二进制数为一组按权展开相加,不足补 0 举例:10010 的八进制为 22 微信图片_20180325163232

八进制(OCT)转二进制(BIN)

将每位八进制数除二取余得到三位二进制数,不足时每位最左面补0 举例:63 的二进制位 110011 微信图片_20180325163211

二进制(BIN)转十六进制(HEX)

与八进制类似,十六进制为取四合一,从右到左转换,不足时补0 A B C D E F 代表 10-15,遇到以 0x 开头的代表后面的数为十六进制数 举例:100110 的十六进制为 26 或者 0x26 微信图片_20180325163214

十六进制(HEX)转二进制(BIN)

对每个十六进制数除二取余,每组得到 4 个二进制,不足时左面补 0 举例: 0xBB3 的二进制数为:101110110011 微信图片_20180325163228

十进制转八进制或十六进制

除 8 或者 16 取余 举例: 2996 的八进制为:5664 微信图片_20180325163159

八进制或者十六进制转十进制

将八进制或者十六进制按权展开并相加 举例:0xBB3 的十进制为 2996 微信图片_20180325163219

负数情况

负的十进制转二进制

以上都是基于正整数的情况下,如果是如果十进制为负数的情况下,则需要按照转换二进制,按位取反尾数加 1的原则进行转换。相当于计算补码。 举例:-22(10) 的二进制为:11101010;如果是 16 位的 -22 其二进制在左侧加上 8 个 1 微信图片_20180325163214

负数的二进制转十进制

逆向逻辑推,先减去 1 ,取反,正常计算,对于如何看出二进制的数是否有符号位(相对于十进制来说),观察其最高位是否为 1(不满8位前面补0,超8 位前面补0变成16位 根据$2^n$来计算), 如果为 1 则此数为有符号位,即负数,如果为 0 则为正数。 举例:10101001的十进制为 -87 微信图片_20180325203700