黑马程序员技术交流社区

标题: 进制要怎么理解呢 [打印本页]

作者: 张秀威    时间: 2013-11-2 19:00
标题: 进制要怎么理解呢
这几天都在整理,看看前还有什么不懂的地方,我发现进制转换还是有些不懂,比如十进制转成十六进制  90(十进制)--->0101—1010---->5+10--->0x5A(16进制) ,我听到老师讲四个二进制就代表一个十六进制位??
我卡了不知道怎么理解了,还有,还是以刚才的举例:001 01—1 010 (二进制)----->`132(八进制)  三个二进制就代表一个八进制位,就是不能很好去理解这些,求解释!
作者: wangchao1686    时间: 2013-11-2 19:54
就拿十进制来说吧 ,在十进制中,一位数是0~9,当超过9时就是该怎么表示呢,自然就是向前进一位,变成10这个两位数了

其实所说的几进制,就是满几就进位的意思,
在2进制中 ,1表示为0001 再加1的话变成2,满2了,要进位,所以2就表为0010啦

那么怎么是用3个2进制位表示一个8进制数呢?
其实是这样的
3个2进制位可以表示2[sup]3[/sup]个数字(就像3位10进制数可以表示10[sup]3[/sup]个数是一个道理)

数一数就知道了这八个数字是
二进制               八进制
000----------------- 0      
001----------------- 1
010------------------2
011------------------3
100------------------4
101------------------5
110------------------6
111------------------7

是吧八个,对于4位二进制表示一个16进制数道理是一样的啦,乱的话数一数吧

作者: 咸鱼要吃猫    时间: 2013-11-2 21:06
额,这个问题不用太纠结。
首先你不能用平常的思维去想,不然你老想着十进制十进制,就容易把自己弄晕。
我们人平常用的是十进制, 而电脑他平常用的就是二进制。
而八进制,十六进制都是二进制“进化”而来的。
因为二进制表示大一些的数来,位数太多了,所以把它升级一下三位缩成一位,就变成了八进制,因为2的3次方等于8。四位缩成一位就变成了十六进制,因为2的4次方等于16。
像你举得例子---------01011010(2)  把它拆开   001-011-010===>>>三位缩成一位  132(8) 就变成八进制了呀。
作者: 明月几时有    时间: 2013-11-2 21:24
8进制就是满8进1,每一位最大就是7,比如你说的90,90=>0101-1010(2进制),要转成8进制就每3位一看,01-011-010=>132
作者: YUStone    时间: 2013-11-2 23:39
1、各进制转换为十进制,阶乘,例如十六进制0x5A:  5*16¹+10*16º=90  (A代表10)  
2、十进制转换二进制   反除法  这个不用讲了吧,上过小学都知道
3、十六进制、八进制转换二进制   分割法   拿十六进制讲吧   每4位二进制数表示一个十六进制数  如0x5A  只要将每位十六进制数转换成四位二进制数  0101  1010  反过来也是一样的,只是先从末位开始4位分割
作者: 张秀威    时间: 2013-11-3 00:52
wangchao1686 发表于 2013-11-2 19:54
就拿十进制来说吧 ,在十进制中,一位数是0~9,当超过9时就是该怎么表示呢,自然就是向前进一位,变成10这个两位 ...

对,就这样




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