黑马程序员技术交流社区

标题: 关于进制转换和右移原理不是很懂 [打印本页]

作者: 丨懒蟲灬Nigh    时间: 2014-8-14 16:16
标题: 关于进制转换和右移原理不是很懂
2进制转换16进制和8进制4位一算和3位一算就是右移原理  不是很明白 为什么右移???毕老师第二天的26集
比如说0000-0000 0000-0000 0000-0000 0011-1100  10进制为60  转换为16进制  那么取后四位
      & 0000-0000 0000-0000 0000-0000 0000-1111
          0000-0000 0000-0000 0000-0000 0000-1100 =12=C    右移后再去4位
                   0000-0000 0000-0000 0000-0000  0011
               &  0000-0000 0000-0000 0000-0000 1111
                   0000-0000 0000-0000 0000-0000  0011  =3                                             就是说60的16进制为Ox3c  可是我不明白为什么右移??这是不是说的是我们2进制快速转换16进制4位一算的原理?为什么右移呢?是我钻牛角了还是说像1+1=2样是个固定的结果算法?      
作者: 谢建平    时间: 2014-8-14 17:02
4个二进制度位数   就相当于一个16进制度位数     
作者: 丨懒蟲灬Nigh    时间: 2014-8-14 17:12
谢建平 发表于 2014-8-14 17:02
4个二进制度位数   就相当于一个16进制度位数

我知道啊  只是他为什么右移 ?就是说4个2进制的位数就是一个16进制的原理吗?就相当于我问了1个1+1为什么等于2的问题吗 就是固定的原理是吗
作者: 黄小橙    时间: 2014-8-14 17:44
因为16进制是4位一组,所以如果要把二进制转换成十六进制,就必须先 & 0000-0000 0000-0000 0000-0000 0000-1111 得出最右边4位的二进制数,在进行换算成16进制。
然后再右移4位,就可以继续 & 0000-0000 0000-0000 0000-0000 0000-1111得出右边第二组4位的二进制数,在进行换算成16进制。
、、、
这样,就可以得出每4位一组的16进制数了
作者: 黄小橙    时间: 2014-8-14 17:45
黄小橙 发表于 2014-8-14 17:44
因为16进制是4位一组,所以如果要把二进制转换成十六进制,就必须先 & 0000-0000 0000-0000 0000-0000 0000 ...

在把每一组的16进制数拼起来,再在前面加上0x 就得出一个二进制转换成的十六进制数了
作者: 丨懒蟲灬Nigh    时间: 2014-8-14 19:48
黄小橙 发表于 2014-8-14 17:45
在把每一组的16进制数拼起来,再在前面加上0x 就得出一个二进制转换成的十六进制数了 ...

虽然你说的我知道 也回答了,单不是我想知道的  不过我已经知道我自己的答案了 谢谢了~
作者: 象牙    时间: 2014-8-14 22:52
考拉 相信你你一定会弄明白的
作者: 丨懒蟲灬Nigh    时间: 2014-8-14 23:03
象牙 发表于 2014-8-14 22:52
考拉 相信你你一定会弄明白的

谢谢 明白了 就是钻牛角了 问的就是原理 就像1+1=2一样 我问的就是1+1为什么等于2.。。自己想不开。




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