二进制、八进制、十六进制和十进制


数字系统(或数码系统)定义了如何用独特的符号来表示一个数字。在不同的系统中,大小相同的数字有不同的表示方法,例如,十进制数(42)10可表示为(2A)16和(52)8

数字系统分为位置化数字系统非位置化数字系统


一、位置化数字系统

位置化数字系统中符号所占的位置决定了其表示的值,该系统中的数字表示如下:

±(SK-1…S1S0.S-1…S-L)b

它表示的十进制值是:

N=±(SK-1×bK-1+…+S1×b1+S0×b0+S-1×b-1+…+ S-L×b-L)

其中,S 是一套符号集,b 是底数(或基数),b 等于 S 中的符号总数,SK 和 SL 是代表整数和小数部分的符号。

 


二、十进制系统

十进制(decimal),符号集 S = { 0,1,2 … 8,9 },底数 b = 10。十进制系统中的符号常被称为十进制数码或简称数码。十进制数字表示为:

±(SK-1S1S0.S-1…S-L)10

书写十进制数通常省略圆括号、底和+号(对于正数)。例如,把+(552.23)10写成552.23,底和正号是隐含的。

整数:没有小数部分的整型数字
实数:带有小数部分的数字

K位十进制表示的最大整数:Nmax = 10K-1

2.1 位置量

另一种表示一个数的方法是使用位置量,即用10的次幂(100, 101, …, 10K-1 )表示十进制数字。
在这里插入图片描述

 


三、二进制系统

二进制(binary),符号集 S = { 0,1 },底数 = 2 。二进制系统中符号常被称为二进制数码位数码。 数据和程序都是以位模式(二进制模式,是01序列)存储于计算机中的。

3.1 二进制整数

二进制整数表示为: ±(SK-1…S1S0)2,其十进制值计算为:

N=± (SK-1×2K-1 + SK-2×2K-2 +…+ S2×22 + S1×21 + S0×20)

K位二进制表示的整数最大值为: Nmax=2K-1

3.2 二进制实数

一个二进制实数由左边 K 位和右边的 L 位组成:±(SK-1…S1S0.S-1…S-L)2,其十进制值计算为:

N=± (SK-1×2K-1 +…+ S1×21 + S0×20 + S-1×2-1 +…+ S-L×2-L )
其中, S K 是1个位,b = 2 是底,K 是小数点左边位的数量,L 是小数点右边位的数量。注意 K 从 0 开始,而 L 从 -1 开始。最高的幂是 K-1 且最低的幂是 -L。

在这里插入图片描述

 


四、十六进制

十六进制(hexadecima),S = { 0,1,…,9,A,B,C,D,E,F },底数 b = 16,该系统中符号常被称为十六进制数码。
A=10
B=11
C=12
D=13
E=14
F=15

 


五、八进制

八进制(oct),S = { 0,1,…7,8 },底数 b = 8。系统中符号常被称为八进制数码。

 


六、进制转换

6.1 任意进制转换为十进制

在这里插入图片描述

6.2 十进制转换为其他进制

需要两个过程:整数部分和小数部分分别转换

转换整数部分(连除法)
十进制数的整数部分为源,转换后的整数部分为目标。先创建一个空目标。接着反复用底数除源并得到商和余数。余数插人目标的左边,商变为新的源,直到商为0。

在这里插入图片描述

转换小数部分 (连乘法)
十进制小数部分为源,转换后的小数部分为目标。创建一个空目标。接着反复乘源并的到结果,结果的整数部分插入目标右边,小数部分成为新的源。直到目标数位足够。

在这里插入图片描述

在这里插入图片描述

二进制、八进制、十六进制都无法完整表示十进制的所有数,只能表示其中一个子集。 例如 十进制 0.1 转换为二进制是:0.0001100110011… 是一个无限循环小数。

6.2 二进制与十六进制转换

二进制中的四位恰好是十六进制中的一位

6.4 二进制与八进制转换

二进制中三位恰好是八进制中一位

6.5 八进制与十六进制转换

先将八进制转换为二进制,再将二进制转化为十六进制。

6.6 数码的数量计算

从一个底向另一个底转换时,如果知道源系统数码的最大数量,就能知道目标系统中所需用到的数码的最小数量。 假设在以b1为底的系统中使用K个数码,在源系统中显示的最大数是 b1K-1 。 在目标系统中可拥有的最大数是b2X-1。因此b2X-1 ≥ b1K-1, 所以b2X ≥ b1K,即

X ≥ K×(logb1/logb2) 或 X =「K×(logb1/logb2)」

 


七、非位置化数字系统

非位置化数字系统仍然使用有限的数字符号,每个符号有一个值。但是符号所占用的位置通常与其值无关,每个符号的值是固定的。罗马数字系统就是非位置化数字系统。
在这里插入图片描述

为求一个数的值, 需要遵循特定的法则:

  1. 当一个带有较小值的符号位于一个带有同等值或较大值的符号的后面时,这些值相加。
  2. 当一个带有较小值的符号位于一个带有较大值的符号的前面时,用大值减小值。
  3. 如果S1≤10×S2,则符号S1不能出现在符号10×S2之前。 例如, Ⅰ和Ⅴ不能出现在C前面。
  4. 对于大数字,在6种符号(除 I 以外的所有符号)中的任意一个上方加横杠表示乘以1000。
  5. 尽管罗马人使用单词nulla(空)来表达零的概念,但罗马数字系统中缺少数码0。

下面演示了一些罗马数字和他们的值:
在这里插入图片描述


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值