关于进制的计算
进制转换
进制包括 二进制 八进制 十进制 十六进制
二进制(BIN)转十进制(DEC)
将二进制数按权展开相加得十进制数 举例:10010 的十进制为 18
十进制(DEC)转二进制(BIN)
除 2 取余,逆序排列。 举例: 666 的二进制为 1010011010
二进制(BIN)转八进制(OCT)
从右向左,每三位二进制数为一组按权展开相加,不足补 0 举例:10010 的八进制为 22
八进制(OCT)转二进制(BIN)
将每位八进制数除二取余得到三位二进制数,不足时每位最左面补0 举例:63 的二进制位 110011
二进制(BIN)转十六进制(HEX)
与八进制类似,十六进制为取四合一,从右到左转换,不足时补0 A B C D E F 代表 10-15,遇到以 0x 开头的代表后面的数为十六进制数 举例:100110 的十六进制为 26 或者 0x26
十六进制(HEX)转二进制(BIN)
对每个十六进制数除二取余,每组得到 4 个二进制,不足时左面补 0 举例: 0xBB3 的二进制数为:101110110011
十进制转八进制或十六进制
除 8 或者 16 取余 举例: 2996 的八进制为:5664
八进制或者十六进制转十进制
将八进制或者十六进制按权展开并相加 举例:0xBB3 的十进制为 2996
负数情况
负的十进制转二进制
以上都是基于正整数的情况下,如果是如果十进制为负数的情况下,则需要按照转换二进制,按位取反尾数加 1
的原则进行转换。相当于计算补码。
举例:-22(10) 的二进制为:11101010;如果是 16 位的 -22 其二进制在左侧加上 8 个 1
负数的二进制转十进制
逆向逻辑推,先减去 1 ,取反,正常计算
,对于如何看出二进制的数是否有符号位(相对于十进制来说),观察其最高位是否为 1(不满8位前面补0,超8 位前面补0变成16位 根据$2^n$来计算), 如果为 1 则此数为有符号位,即负数,如果为 0 则为正数。
举例:10101001的十进制为 -87
- 原文作者:浮华生
- 原文链接:https://www.ahianzhang.com/post/code01/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。