黑马程序员技术交流社区

标题: 二进制、八进制、十进制、十六进制直接的转换 [打印本页]

作者: fyw2lyf    时间: 2015-5-22 22:18
标题: 二进制、八进制、十进制、十六进制直接的转换
其他进制转成十进制:
结果:
        把 系数*基数^权次幂 相加即可。
        系数:就是每一位上的数据。
        基数:几进制,基数就是几。
        权:把数据从右往左开始编号,并且从0开始,编号就是对应位置数据的权。
如:
        0b100101 = 1*2^5 + 0 + 0 + 1*2^2 + 1*2^0  = 32 + 4 + 1=37
        074  = 7*8^1 + 4*8^0 = 60
        0xf4 = 15*16^1 + 4*16^0 = 240 + 4  = 244
十进制转成其他进制:
        除基取余,直到商为0,余数反转。
进制之间的一个快速转换:
二进制与十进制        8421码:
                1        1        1        1        1        1        1        1
                128  64     32    16     8      4        2        1
二进制到八进制,十六进制的转换:
        基本做法:
                        先把二进制转成十进制,然后再转成对应的进制。
        简单做法:
                        求八进制:把二进制数据,从右往左,三位一组合求十进制,然后拼接。
                        求十六进制;把二进制数据,从右往左,四位一组合求十进制,然后拼接。
作者: 许鑫    时间: 2015-5-23 22:17
good,,,,,,,,,,,,,,,
作者: guoyangpeng    时间: 2015-5-23 22:20
不错,复习了!
作者: 小峰Raul    时间: 2015-5-23 22:41
这个简单的方法还是很好很实用的
作者: GNU-Linux    时间: 2015-5-23 23:00
本帖最后由 GNU-Linux 于 2015-5-23 23:19 编辑

感谢,分享;还不是没有弄懂,
  把 系数*基数^权次幂 相加即可。
        系数:就是每一位上的数据。
        基数:几进制,基数就是几。
        权:把数据从右往左开始编号,并且从0开始,编号就是对应位置数据的权。
“0b100101 = 1*2^5 + 0 + 0 + 1*2^2 + 1*2^0  = 32 + 4 + 1=37”

把数据从右往左开始编号
“0b100101 = 1*2^5 (为什么是5?倒数的话,0b呢?)+ 0 + 0 + 1*2^2 + 1*2^0  = 32 + 4 + 1=37”





作者: jiatengde    时间: 2015-5-23 23:39
GNU-Linux 发表于 2015-5-23 23:00
感谢,分享;还不是没有弄懂,
  把 系数*基数^权次幂 相加即可。
        系数:就是每一位上的数据。

0b是JDK7.0以后,加入二进制然后以0b开头,就是中表示方法和十六进制0x开头以样,所以整个二进制就是
100101 ,权就是从右往左数的编号,走右边的1权是0所以最左边的1权是5
作者: jiatengde    时间: 2015-5-23 23:41
新人报道啊,努力学习吧
作者: hieiyukina    时间: 2015-5-23 23:43
复习一下 谢谢分享啊
作者: 卡布    时间: 2015-5-23 23:55
复习一下~~
作者: 二大爷    时间: 2015-5-24 00:05
不错   可以拿来复习
作者: qian0217wei    时间: 2015-5-24 01:11
这个方法计算机基础里面就讲过,当然对一些不了解的还是有点帮助的!
作者: 张凝宁    时间: 2015-5-24 03:05
挺好的  慢慢学吧~!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2