专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »编程综合 » 十进制转二进制:二进制 »正文

十进制转二进制:二进制

来源: 发布时间:星期六, 2008年11月29日 浏览:314次 评论:0
第二节 数 制
  计算机是对信息进行高速自动化处理的机器。这些信息是以数字、字符、符号、图形和声音等形式出现,它们在计算机内部一律采用二进制表示数据信息,而大家常用的则是十进制,有时为了方便还使用八进制或十六进制。因此,掌握不同计数制及其转换是非常重要的。
  一、采用二进制的原因
  ① 二进制码在物理上最容易实现。计算机由逻辑电路组成的,逻辑电路通常只有两个状态。例如,电压的高与低、脉冲的有与无、开关的接通与断开等。这两种状态正好用来表示二进制数码“1”和“0”。若是采用十进制,则需表示十个数码,这是困难的。
  ② 运算简单。二进制运算简单,例如二进制的加、减、乘、除四则运算法则只有4条,而十进制的四则运算法则都各有100条。 这里将二进制的减、乘、除经过一定的处理后,都能用加法和移位操作实现。显然,运算器的构造可以得到很大简化。
  ③ 逻辑性强。计算机工作原理是建立在逻辑运算基础上的, 二进制的两个符号“1”和“0”正好与逻辑命题的两个值“是”和“否”或称“真”和“假”相对应,从为计算机实现逻辑运算和程序中的逻辑判断提供了便利条件。
 二、权与基数
  采用进位计数制进行计数,表示数值大小的数码与它在数中所处的位置有关。
  1.位权 
  位权是指每个数位被赋以一定的权值;
  不论多少进制,整数部分最右边一位的权 1,r进制数每左移一位,权就增长r倍。
  例如:十进制数“111”;
  个位上的“1”表示1个1,即权为1;
  十位上“1”表示1个10,即权为10;
  百位上的“1”表示1个100,即权为100;
  2.基数 
  基数指相邻位的位权之比;
  r进制的基数为r。
  例如:十进制数的基数为10。
  三、数制特点
  ① 每一种数制都有固定的符号集,R进制就只用r 个基本符号。如十进制,其符号有10个:0,1,2,…,9;二进制,其符号有2个:0和1。
  ② r进制数逢r进一。例如,十进制数逢十进一,二进制数逢二进一。
  ③ 任何一种进位计数制表示的数都可以写出其权展开的多项式之和,任意一个r进制数N可表示为
              N=
式中的Di为该数制采用的基本数符,ri是权,r是基数,不同的基数表示不同的进制数,m为整数部分的位数,k为小数部分的位数。
  例:十进制数734.58按权展开可写成:
    
    二进制数1101.01按权展开可写成:
    
各种进制数表示法对照表
  四、数制转换
  (一)r 进制转换成十进制
  r 进制转换成十进制,只需按权展开后求和即可。
  例:二进制转换成十进制。
    
     =(13.25)D
    八进制转换成十进制。
    
  (二)十进制转换成r进制
  十进制转换成r进制时,整数部分与小数部分的转换方法是不相同的,下面分别加以介绍。
  ⒈ 十进制整数转换成r进制数
  十进制整数转换成r进制数采用“逐次除以r取余法”。“逐次除以r取余法”的过程是:用待转换的十进制整数除以r,取其商的余数作是r进制数最低位的系数,用商的整数部分继续除以 r,取其商的余数作为r高一位的系数……这样逐次相除直到商为0,即得到从低位到高位的余数序列便构也相应的r进制整数。
  例:十进制转换成二进制数。
    (25)D=(11001)B
    
  例:十进制转换成十六进制。
    (110)D=(6E)H
    
  注意:第一位余数是低位,最后一位余数是高位。
  ⒉ 十进制小数转换成二进制数
  十进制小数转换成r进制数采用“逐次乘以r取整法”。“逐次乘以r取整法”:逐次用r去乘待转换的十进制小数,将每次得到的整数部分依次记为r进制小数的小数点后的第1位、第2位……直到小数部分为零或满足一定精度要求时便可终止转换。
  例:(0.8125)D=(0.1101)B
    
  将十进制小数0.7转换成二进制小数,保留五位小数。
  
  我们发现上面算式从第五位开始循环,形成无限循环二进制小数。
  ⒊ 混合型十进制转换成r进制数
  对混合型十进制转换成r 进制数,可先分解为整数和纯小数,按上述方法,各自转换成等值的二进制数,然后将两个二进制数相加便得到结果。
  例如,(25.8125)D=(11011.1101)B
     (25.8125)D=(25)D+(0.8125)D
     =(11011)B+ (0.1101)B
    = (11011.1101)B
  (三)非十进制数间的转换
  方法一:两个非十进制数之间的转换方法是采用上述两种方法的组合,即先将被转换数转换为相应的十进制数,然后再将十进制数转换为其他进制数。
  方法二:由于二进制、八进制和十六进制之间存在特殊关系,即81=23,161=24, 因此转换方法就比较容易,如下表。

  ① 根据这种关系,二进制转换到八进制十分简单。只要将二进制数从小数点开始,整数部分从右向左每3位一组,小数部分从左向右每3位一组,最后不足3位补零,然后根据上表即可完成转换。
  例:将二进制数转换成八进制数。
    (10100101.011011101)B
     =(010 100 101. 010 111 010)B
     =( 2 4 5 . 2 7 2 )O
  例:将八进制数转换成二进制数的过程正好相反。
    (36.45)O
     =(011 110. 100 101)B
     =(11110.100101)B
  ② 二进制同十六进制之间的转换就如同八进制同二进制之间的转换一样, 只是4位一组。
  例:将二进制数转换成十六进制数。
    (111111100011.100101011)B
     =(0001 1111 1100 0111 . 1001 0101 1000)B
     =(1   F   C  7  . 9  5  8)H
  ③ 八进制和十六进制之间的转换,可先转换成二进制。例如:
    ( 2 4 5 . 2 7 2 )O
     =(010 100 101. 010 111 010)B
     =(1010 0101. 0101 1101)B
     =(A   5  .  5  D)H
 五、二进制数的算术运算
  二进制数的算术运算包括加法、减法、乘法和除法。基本运算是加法和减法运算。
  (一)加法
  二进制的加法运算遵循下列3条法则:
  ① 0+0=0
  ② 0+1=1+0=1
  ③ 1+1=10(逢二进一,向高位进位)
  例如,(1010)B+(1011.101)B的算法如下:
    
  (二)减法
  二进制的减法运算遵循下列3条法则:
  ① 0-0=1-1=0
  ② 1-0=1
  ③ 0-1=1(此时要向高位借位,借1当2)
  例如,(11100101)B -(10011010)B的算式如下:
     
  (三)乘法
  二进制的乘法运算遵循下列3条法则:
  ① 0×0=0
  ② 1×0=0×1=0
  ③ 1×1=1
  例如,(1011.01)B ×(101) B的算式如下:
     
  由上述乘法运算过程可知,每个部分积都取决于乘数的相应位是0还是1。若乘数的相应位为0,则此次部分积为0;若乘数相应位为1,则此次部分积就是被乘数。部分积的数目与乘数的位数相同,每次的部分积依次左移一位。将各部分积累加起来,就得到最终的乘积。
  (四)除法
  二进制的除法运算遵循下列3条法则:
  ① 0÷0=0
  ② 0÷1=0(1÷0是无意义的)
  ③ 1÷1=1
  例如,(100100.11)B÷(101) B的算式如下:
     
  六、二进制数的逻辑运算
  在逻辑代数里,表示“真”与“假”、“是”与“否”、“有”与“无”这种具有逻辑属性的变量称为逻辑变量。实现逻辑变量这间的运算称为逻辑运算。对二进制数的1和0赋以逻辑含义,例如用1表示真,用0表示假,这样将二进制数与逻辑取值对应起来。由此可见,逻辑运算是以二进制数为基础的。计算机的逻辑运算与算术运算的主要区别是:逻辑运算的操作数和结果都是单个数位的操作,位与位之间没有进位和借位的联系。
  逻辑运算包括三种基本运算:逻辑加法(逻辑“或”运算)、逻辑乘法(逻辑“与”运算)和逻辑否定(逻辑“非”运算)。此外还有逻辑“异或”运算。
  (一)逻辑加法(逻辑或运算)
  逻辑加法通半
2

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: