1.1 进位计数制

原创 2007年10月06日 12:16:00

 1.1 进位计数制

二进制数
0000
0001
0010
0011
0100
0101
0110
0111
十进制数
0
1
2
3
4
5
6
7
十六进制数
0
1
2
3
4
5
6
7
二进制数
1000
1001
1010
1011
1100
1101
1110
1111
十进制数
8
9
10
11
12
13
14
15
十六进制数
8
9
A
B
C
D
E
F

进位计数制
数制表示
基 数
数 码
十六进制数Hexadecimal
H
16
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
十进制数Decimal
D
10
0,1,2,3,4,5,6,7,8,9
八进制数Octal
O
8
0,1,2,3,4,5,6,7
二进制数Binary
B
2
0,1

  进位计数制是一种计数的方法,常用的有十进制计数法、二进制计数法、十六进制计数法、八进制计数法等。

十进制数:基数为10,逢10进1。二进制数:基数为2,逢2进1。十六进制数:基数为16,逢16进1。
  有些时候用二进制表示数不太方便(代码很长),所以经常采用十六进制表示法, 4位二进制数可用1位十六进制数来表示。

  十六进制数与二进制数、十进制数的对应关系如下:

1.2 不同基数的数之间的转换

1.2.1 二进制数和十进制数之间的转换

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

  各位二进制数与其对应权值的乘积之和即为与该二进制数相对应的十进制数。

 1.2.1.2 十进制数转换为二进制数
  降幂法:首先写出要转换的十进制数,其次写出所有小于此数的各位二进制权值,然后用要转换的十进制数减去与它最接近的二进制权值,如够减则减去并在相应位记以1;如不够减则在相应位记以0并跳过此位;如此不断重复,直到该数为0为止。
除法:把要转换的十进制数的整数部分不断除以2,并记下余数,直到商为0为止。

1.2.2 二进制数和十六进制数之间的转换
 

    由于十六进制数的基数是2的幂,所以这两种数制之间的转换十分容易。

1.2.2 二进制数和十六进制数之间的转换
 

  由于十六进制数的基数是2的幂,所以这两种数制之间的转换十分容易。
  对一个二进制数,将它从低位到高位每4位组成一组,每组用一个十六进制数来表示。
  对一个十六进制数,将它的每一位用4位二进制数表示。

                   例: 0011  0101  1011 1111
                        3   5   B   F
                     即 0011010110111111B = 35BFH

                   例: A    1    9   C
                       1010  0001  1001 1100
                     即 A19CH = 1010000110011100B

1.2.3 十六进制数和十进制数之间的转换

1.2.3.1 十六进制数转换为十进制数

 
  各位十六进制数与其对应权值的乘积之和即为与该十六进制数相对应的十进制数。
1.2.3.2 十进制数转换为十六进制数

  
转换方法与十进制转换为二进制的方法类似。
  降幂法:首先写出要转换的十进制数,其次写出小于该数的十六进制权值,然后找出该数中包含多少个最接近它的权值的倍数,这一倍数即对应位的值,用原数减去此倍数与相应位权值的乘积得到一个差值,再用此差值去找低一位的权值的倍数,如此反复直到差值为0为止。

 除法:把要转换的十进制数的整数部分不断除以16,并记下余数,直到商为0为止。

1.3 二进制数和十六进制数的运算
 
  
   包括算术运算和逻辑运算。

1.3.1 算术运算

    二进制数的运算:
              加法规则:         乘法规则:
              0 + 0 = 0          0 0 = 0
              0 + 1 = 1          0 1 = 0
              1 + 0 = 1          1 0 = 0
              1 + 1 = 0(进位1)      1 1 = 1

  十六进制数的运算:十六进制的加、减、乘、除与十进制类似。
                  

1.3.2 逻辑运算

  所有的逻辑运算都是按位操作的。
  
  “与”运算(AND)
                       

  “或”运算(OR)
                       

  “非”运算(NOT)
                      

  “异或”运算(XOR)
 
               

  例:X=00FFH,Y=5555H,Z1=XY,Z2=XY,Z3=,Z4=XY,求Z1、Z2、Z3、Z4的值。

     解:X = 0000 0000 1111 1111
       Y = 0101 0101 0101 0101
       Z1= 0000 0000 0101 0101 = 0055H
       Z2= 0101 0101 1111 1111 = 55FFH
       Z3= 1111 1111 0000 0000 = FF00H
       Z4= 0101 0101 1010 1010 = 55AAH

 1.4 数和字符的表示

1.4.1 计算机中数的表示
1.4.1.1 补码表示法

  计算机中的数和数的符号都是用二进制表示的,这样的数称为机器数。一般用最高有效位来表示数的符号,正数用0表示,负数用1表示。
  机器数可用不同的码制来表示,常用的有原码、补码和反码表示法。

  机器字长n是指参与运算的数的基本位数,标志着计算精度,一般是字节的整数倍,有8位、16位、32位等。

  原码表示法:符号 + 绝对值

 负数的补码表示:相应的正数按位求反,末位加1即为该负数的补码表示
  
  求负数补码表示的方法:
  (1)写出与该负数相对应的正数的补码
  (2)按位求反
  (3)末位加一

 符号扩展:是指一个数从位数较少扩展到位数较多,如从8位扩展到16位,或从16位扩展到32位。

  对于用补码表示的数,正数的符号扩展在前面补0,负数的符号扩展在前面补1,假设机器字长为16位,[+46]补码 = 002EH,[-46]补码 = FFD2H。

【本章小结】

  1. 数制
  计算机中的数字电路用电压的高低(或通断)表示两种状态0、1,所以计算机内部的所有信息都是采用二进制计数法。在书写程序时,常采用二进制的短格式表示法:十六进制。

  2. 数制之间的转换
  二进制数和十六进制的转换是很直接的。一个二进制数,从低位到高位,每4位用一个数字来表示,就是相应的十六进制数,反之一个十六进制数中的每一位用4位二进制数表示,就转换成相应的二进制数。

  十六进制数的各位数与其对应权值(16i)的乘积之和即为其对应的是十进制数。十进制数转换为十六进制数可使用降幂法和除法。

  3. 运算
  二进制数的算术运算规则是逢二进一,十六进制数的运算规则是逢十六进一。
基本逻辑运算包括与(AND)、或(OR)、非(NOT)、异或(XOR),0、1代码为逻辑变量。

  4. 数和字符的表示
  计算机中的数是用二进制来表示,其最高有效位表示数的正负号。整数采用补码表示法。对一个二进制数按位求反后在末位加1的运算称为求补运算。

  补码的加法规则是:[X+Y]=[X] +[Y]
  补码的减法规则是:[X-Y] =[X]+[-Y]
  计算机采用ASCII表示字符,每个字符占用一个字节。

【课后习题】

  1 用降幂法或除法将下列十进制数转换为二进制数和十六进制数:
(1)369
(2)10000
(3)4096
(4)32767

2 将下列二进制数转换为十六进制数和十进制数:
(1)101101
(2)10000000
(3)1111111111111111
(4)11111111

3 将下列十六进制数转换为二进制数和十进制数:
(1)FA
(2)5B
(3)FFFE
(4)1234

4 完成下列十六进制数的运算:
(1)3A+B7
(2)1234+AF
(3)ABCD-FE
(4)7AB×6F

5 下列各数均为十进制数,请用8位二进制补码计算下列各题,并用是十六进制数表示其运算结果。
(1)(―85)+76
(2)85+(―76)
(3)85―76
(4)85―(―76)
(5)(―85)―76
(6)―85―(―76)

6 下列各数为十六进制表示的8位二进制数,请说明当它们被看作是用补码表示的带符号数时,它们所表示的十进制数是什么?
(1)D8
(2)FF

7 当1. 6题的两数被看作是用补码表示的无符号数时,它们所表示的十进制数是什么?
(1)D8
(2)FF     

8 下列各数为十六进制表示的8位二进制数,请说明当它们被看作是用补码表示的数时,它们所表示的十进制数是什么?
(1)4F
(2)2B
(3)73
(4)59

9 当1. 8题的4个数被看作是字符的ASCII码时,它们所表示的字符是什么?
(1)4F
(2)2B
(3)73
(4)59


 
版权声明:本文为博主原创文章,未经博主允许不得转载。

浅析“进位计数制及数制转换”

转载自浅析“进位计数制及数制转换” 摘要:我们时刻都在和数打交道。然而人类对数的认识和发展经历了一个极为漫长的过程。进位制是数学发展史上的一个转折点,是古代文明最了不起的成就之一,标志着人类对数的认识...
  • QQ1449301756
  • QQ1449301756
  • 2015年09月08日 20:10
  • 723

1.1数制和转换

二进制,八进制,十进制,十六进制是我们常用的计算机数制,想来写写这么数制之间是如何转换的。 1.1十进制转换二进制  用十进制数除以2取余数。 如:  十进制数 100 转换 2进制 ...
  • leemullin
  • leemullin
  • 2016年01月22日 11:17
  • 324

【数据结构】用栈实现数制的转换

用栈实现数制的转换.cpp #include using namespace std; typedef int SElemType; typedef struct {  SElemType *b...
  • qq_32353771
  • qq_32353771
  • 2015年11月10日 15:02
  • 1795

CCF NOI1076 进制转换

问题链接:CCF NOI1076 进制转换。 时间限制: 1000 ms  空间限制: 262144 KB 题目描述    用递归算法将一个十进制数X(1...
  • tigerisland45
  • tigerisland45
  • 2017年05月01日 10:00
  • 562

java取整,四舍五入,截取,进位方法整理。

JAVA中常用的取整,四舍五入,截取,小数直接进位等方法整理。
  • Myoursky
  • Myoursky
  • 2014年10月13日 09:49
  • 4729

POJ NOI0113-01 数制转换(Bailian2710)【进制】

问题链接:POJ NOI0113-01 数制转换。 总时间限制: 1000ms内存限制: 65536kB 描述 求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表...
  • tigerisland45
  • tigerisland45
  • 2017年04月09日 05:22
  • 513

【计组】--数值的机器运算(1): 加法器

概绪 参考书目:《计算机组成原理》(第三版) 蒋本珊 编著 全加器(FA)模型逻辑表达式 Si=Ai⊕Bi⊕Ci−1S_i=A_i⊕B_i⊕C_{i-1} Ci=AiBi+(Ai⊕...
  • LHYzyp
  • LHYzyp
  • 2017年06月28日 11:43
  • 314

算术逻辑单元之全加器之双重分组跳跃进位链

双重跳跃进位链
  • McMAYCP3
  • McMAYCP3
  • 2017年12月11日 22:16
  • 24

3-2 Verilog 4位行波进位加法器

Verilog 学习过程 4位行波进位加法器
  • hyhop150
  • hyhop150
  • 2016年04月23日 13:02
  • 1086

第一章 加法器

第一章 加法器 一、数据格式 1. 定点数表示法:x=x0x1x2…xn ,x0: 符号位,0代表正,1代表负。 2. 浮点表示法:          一个机器浮点数由阶码和尾数及其符号位组成(尾...
  • hhhewl
  • hhhewl
  • 2014年04月02日 15:07
  • 2470
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:1.1 进位计数制
举报原因:
原因补充:

(最多只允许输入30个字)