彭泽热线

 找回密码
 注册
查看: 5169|回复: 4

解读 二进制,十六进制,八进制

[复制链接]
发表于 2014-8-4 06:20 | 显示全部楼层 |阅读模式 来自 中国浙江湖州
  0,16,2进制的互相转换

  所谓16进制,就是由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16个数字组成。逢16进一位,下面就讲讲在没有任何工具的情况下如何将一10进制转化为16进制:

  1000除以16得62余8,那么最低位为8,再将62除以16得3余14,那么倒数第2为E(14对于16进制来说是E),3比16小了,所以不用继续除了,总的就是3E8,为1000的16进制数。

  想要将16进制的数转化为10进制,只需将上面的步骤反过来做就可以了。不用我多说吧!

  2进制仅由0、1两个数字组成,逢1进一。要将一10进制化为2进制,介绍一个简单的方法,先将10进制的数化为16进制,再化为2进制,举个例子:

  515对应16进制为203H,将203转为2进制则为0010(2) 0000(0) 0011(3),一个位数对2进制来说是4个字符。0H就是0000、1H就是0001、、0EH就是1110、OFH为1111,大家可自己推一下。

  总之大家一定要熟练掌握各个进制的互相转化,尤其是100以内10--16和16--10的互相转化要记住。

  16-10H、32-20H、48-30H、64-40H、80-50H、96-60H、100-64H,255-FFH,65535-FF FFH,1677万-FF FF FFH,前为10进制,后有H的为16进制,这些能记住最好,以后修改就方便许多了。

  二进制

  二进制是逢2进位的进位制,0、1是基本算符。

  现代的电子计算机技术全部采用的是二进制,因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现。

  二进制四则运算规则

  加法  0+0=0,0+1=1+0=1,1+1=10

  减法  0-0=0,1-0=1,1-1=0,0-1=-1

  乘法  00=0,01=10=0,11=1

  除法  01=0,11=1

  一、什么是二进制

  在现实生活和记数器中,如果表示数的器件只有两种状态,如电灯的亮与灭,开关的开与关。一种状态表示数码0,另一种状态表示数码1,1加1应该等于2,因为没有数码2,只能向上一个数位进一,就是采用满二进一的原则,这和十进制是采用满十进一原则完全相同。

  1+1=10,10+1=11,11+1=100,100+1=101,

  101+1=110,110+1=111,111+1+=1000,,

  可见二进制的10表示二,100表示四,1000表示八,10000表示十六,。

  二进制同样是位值制。同一个数码1,在不同数位上表示的数值是不同的。如11111,从右往左数,第一位的1就是一,第二位的1表示二,第三位的1表示四,第四位的1表示八,第五位的1表示十六。用大家熟悉的十进制说明这个二进制数的含意,有以下关系式

  (11111)(二进制)=124+123+122+12+1(十进制)

  一个二进制整数,从右边第一位起,各位的计数单位分别是1,2,22,23,,2n,。

  1为什么需要八进制和十六进制?

  编程中,我们常用的还是10进制必竟C/C 是高级语言。

  比如:

  int a = 100,b = 99;

  不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。

  但,二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是:

  0000 0000 0000 0000 0110 0100

  面对这么长的数进行思考或操作,没有人会喜欢。因此,C,C 没有提供在代码直接写二进制数的方法。

  用16进制或8进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。不过,为什么偏偏是16或8进制,而不其它的,诸如9或20进制呢?

  2、8、16,分别是2的1次方,3次方,4次方。这一点使得三种进制之间可以非常直接地互相转换。8进制或16进制缩短了二进制数,但保持了二进制数的表达特点。在下面的关于进制转换的课程中,你可以发现这一点。

  6.2 二、八、十六进制数转换到十进制数

  6.2.1 二进制数转换为十进制数

  二进制数第0位的权值是2的0次方,第1位的权值是2的1次方

  所以,设有一个二进制数:0110 0100,转换为10进制为:

  下面是竖式:

  0110 0100 换算成 十进制

  第0位 0 * 20 = 0

  第1位 0 * 21 = 0

  第2位 1 * 22 = 4

  第3位 0 * 23 = 0

  第4位 0 * 24 = 0

  第5位 1 * 25 = 32

  第6位 1 * 26 = 64

  第7位 0 * 27 = 0 +

  ---------------------------

  100
发表于 2014-8-4 11:22 | 显示全部楼层 来自 中国浙江金华
顶个~ 真是不错 哈哈!
回复 支持 反对

使用道具 举报

发表于 2014-8-4 11:37 | 显示全部楼层 来自 中国江西九江
高手!{:1_249:}{:1_249:}{:1_249:}
回复 支持 反对

使用道具 举报

发表于 2014-8-4 15:22 | 显示全部楼层 来自 中国江苏徐州
哈哈。。。很好很强大。。。
回复 支持 反对

使用道具 举报

发表于 2014-8-4 19:23 | 显示全部楼层 来自 中国北京
继续人工置顶,继续起带头作用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

彭泽热线 免责声明 本站内容来源于互联网及个人 不代表本站观点及立场.
本站不对网友所发言论的真实性做出评价,也无权删除(反动、色情、政治、垃圾广告帖等除外)
假若內容有涉及侵权,请立即联络我们。我们将立刻从网站上刪除,并向所有持版权者致最深的歉意。
本站法律顾问: 陈银山
快速回复 返回顶部 返回列表