计算机进制及其转换
Posted EternallEi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机进制及其转换相关的知识,希望对你有一定的参考价值。
为什么计算机采用二进制编码?
1. 二进制只有两种状态,使用有两个稳定状态的物理器件就可以表示二进制数的每一位,制造成本比较低,例如用高低电平或电荷的正负极性都可以很方便地表示0和1。
2. 二进制位1和0正好与逻辑值“真”和“假”对应,为计算机实现逻辑运算和程序中的逻辑判断提供了便利条件。
3. 二进制的编码和运算规则都很简单,通过逻辑门电路能方便地实现算术运算。
简单来说现代计算机基于复杂度最小与工程实现最简单的原因采取了二进制。
计算机思维与我们日常思维有很大的不同:计算机更倾向简单问题大量重复的工作,而我们却更倾向复杂问题减少重复的工作。
这样的设计模式造就了计算机内的大量逻辑控件往往采用最简单的“真”,“假”作为基础来实现复杂的计算。
初识进制
在进入进制转换的计算前我们先来认识进制!
进制也就是进位计数制,对于X进制来说,就是逢X进一。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一。可使用数字符号的数目称为基数或底数,基数为n,即可称n进位制,简称n进制。
进位记数法:
在进位计数法中,每个数位所用到的不同数码的个数称为基数。十进制的基数为10(0~9),每个数位计满10就向高位进位,即“逢十进一”。每个数码所表示的数值等于该数码本身乘以一个与它所在数位有关的常数,这个常数称为位权。一个进位数的数值大小就是它的各位数码按权相加。
这样看可能有些抽象,举个例子:
234(10) = 2*102+3*101+4*100
我们以十进制的234为例。那么对应公式中的基数r=10,其中的102,101,100就分别是第2,1,0位的位权(整数位最低位规定为第0位)。
进制转换规则
(二进制,八进制,十六进制)
二进制:由两个数码0,1组成。为区别于其它进制,二进制数的书写通常在数的右下方注上基数2,或在后面加B表示,其中B是英文二进制Binary的首字母。例如:二进制数10110011可以写成(10110011)2,或写成10110011B。
八进制:八进制的基数R=8=23,有数码0、1、2、3、4、5、6、7,并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。八进制用下标8或数据后面加O表示
十六进制:十六进制也是二进制的一种常用书写形式,其基数为16,“逢十六进一”。每个数位可取0~9、A、B、C、D、E、F中的任意一个,其中A、B、C、D、E、F分别表示10~15。因为r=16=24,因此4位二进制数码与1位十六进制数码相对应。
注意:
1)二进制转化为八进制或十六进制时需要分组转化,如果整数部分位数不够则最左位添0补位,小数部分位数不够则最右位添0补位
例如:二进制数据 (11 101 010 . 010 110 10)2 = (011 101 010 . 010 110 100)2
其中011 = 0*22+1*21+1*20=3(其余同理,不再赘述)
对应八进制数据 (352 .264)8或352 .264O。
2)同样,由八进制数或十六进制数转换成二进制数,只需将每位改为3位或4位二进制数即可(必要时去掉整数最高位或小数最低位的0)。
3)八进制数和十六进制数之间的转换也能方便地实现,十六进数制转换为八进制数(或八进制数转换为十六进制数)时,先将十六进制(八进制)数转换为二进制数,然后由二进制数转换为八进制(十六进制)数较为方便。
这里再给大家提供常用几种进制的对应关系表格:
进制转换规则(十进制与任意进制数)
1)任意进制数转换为十进制数
将任意进制数的各位数码与它们的权值相乘,再把乘积相加,就得到了一个十进制数。这种方法称为按权展开相加法。
例如:(11011.1) =1×24+1×23+0×22+1×21+1×20+1×2-1= 27.5
2)十进制数转换为任意进制数
一个十进制数转换为任意进制数,常以小数点为界限,整数部分与小数部分进行分开处理。对整数部分用除基取余法,对小数部分用乘基取整法,最后将整数部分与小数部分的转换结果拼接起来。
听起来有一些复杂,不过不要着急计算。我们先来介绍一下这两种方法如何使用。
除基取余法(整数部分的转换):整数部分除基取余,最先取得的余数为数的最低位,最后取得的余数为数的最高位(即除基取余,先余为低,后余为高),商为0时结束。
乘基取整法(小数部分的转换):小数部分乘基取整,最先取得的整数为数的最高位,最后取得的整数为数的最低位(即乘基取整,先整为高,后整为低),乘积为1.0(或满足精度要求)时结束。
其实总结下来就是:
1)整数除,小数乘(整数部分除以基数,小数部分乘以基数)
2)整数余,小数整(整数部分取每次计算的余数,小数部分取每次计算的整数)
3)整数升,小数降(整数部分结果从高位往低位写是上升趋势,小数部分结果从高位往低位写是下降趋势)
记住这些口诀后我们用例子来实践:
Q: 十进制243.25转化为二进制?
因此整数部分:243(10)=11110011(2)
因此小数部分0.25(10)=01(2)
最终结果:243.25(10)=11110011.01(2)
再练习进制转换问题:
1. 二进制转十进制
前提:
首先二进制的范围是 127~ -128 之间。
1的0次方等于 1,2的0次方等于1,任何整数的0次方都等于1。 -1的0次方等于-1,-2的0次方等于-1,0的0次方没有意义。
方式一:按位权展开(传统的计算方式耗时耗力)。
(1011 0110 1101) 2 = (1*2^11 + 0*2^10 + 1*2^9 + 1*2^8 + 0*2^7 + 1*2^6 + 1*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 )
= 2048 + 512 + 256 + 64 + 32 + 8 + 4 + 1
= (2925)10
方式二:8241法则(简单省心)。
(1011 0110 1101) 2
= 2048 +1024+ 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1
= (2925)10
1. 从右侧开始算,将 1 对应的数值全部加起来,0 对应的数值划掉。
2. 按权位展开的最终结果还是 8421 ,费那些心。
2. 十进制转二进制
方式一:除以2逆商取余。
(125)10 = 125/2 = 62 ……1
= 62 / 2 = 31 ……0
= 31 / 2 = 15 ……1
= 15 / 2 = 7 ……1
= 7 / 2 = 3 ……1
= 3 / 2 = 1 ……1
= 1 / 2 = 0 ……1
↑ 从下面往上取余 (1111101)2
方式二:8421法则。
(125)10 = 64 + 32 + 16 + 8 + 4 + 2 + 1
=( 1 1 1 1 1 0 1) 2
规则:62+32+16+8+4+2+1 = 127 划掉 2 等于 125。128比125大,所以在8421法则中只能从比125小的数值开始找。和等于 125,剩余的划掉。
3. 十进制转八进制
需求:(125)10 转成八进制。
步骤:
1. 先将(125)10 转换成二进制(使用8421法则)。
(125)10 = 64 + 32 + 16 + 8 + 4 + 2 + 1
= (1 1 1 1 1 0 1)2
2. 再将二进制转换成八进制。
(1,111,101)2 = (001,111,101)2
= (175)8
规则:
1. 将一个二进制数转换成八进制数,从右边开始看,每三位二进制数转换成一位八进制数,左边不够三位的,用0给补齐。
2. 将八进制转换成二进制,反推规则。将一个八进制数值拆成三个二进制数字,不够三位左边用0补(推荐:8421法则)。
3. 注意在转换的时候,八进制的范围是(0~7) 就是三个二进制(二进制数只有0和1)数转换成一个八进制最大数只能是7(111 = 7),大于7的,那的恭喜你,再来一次,和再来一瓶是有本质区别的。
4. 十进制转十六进制
需求:(125)10 转成十六进制。
步骤:
1. 还是先将(125)10转换成二进制。
(125)10 = 64 + 32 + 16 + 8 + 4 + 2 + 1
= (1 1 1 1 1 0 1)2
2. 再将二进制转换成十六进制。
(111,1101)2 = (0000,0111,1101)2
= (7D)16
规则:
1. 将二进制转换成十六进制,从右往左看,四个二进制数为一组,转换成一个十六进制数,不够四位用0补齐,注意只能补0,0只能补左边。
2. 反推规则,将十六进制转换成二进制,一个十六进制数拆分成四个二进制数。
3. 十六进制的范围(0~F) A,B,C,D,E,F分别表示数字10~15。
注意:如果是要比大小的时候,那就统一将数值转换成一个十进制数值进行比较。有没有发现二进制是其它进制的基底。先直接转成二进制,再分别转成需要的即可。
通过例子相信大家已经对进制转化很清楚了,进制转化常考计算和选择,所以大家计算时只需掌握方法计算细心就能得心应手。
软考-嵌入式系统设计师-笔记:计算机系统基础知识
文章目录
数制及其转换
- 二进制、八进制、十进制、十六进制转换;
- 定点数二进制转十进制:
100110.101 = 25 + 22 + 21 + 2-1 + 2-3 = 38.625
- 定点数十进制转二进制:
175.71875 = 27 + 25 + 23 + 22 + 21 + 20 + 2-1 + 2-3 + 2-4 + 2-5 = 10101111.10111
数据的表示
原码、反码、补码、移码
真值 | 原码 | 反码 | 补码 | 移码 |
---|---|---|---|---|
45 | 00101101 | 00101101 | 00101101 | 10101101 |
-45 | 10101101 | 11010010 | 11010011 | 01010011 |
- 原码
最高位表示符号,0为正、1为负;
- 反码
正数:反码 = 原码;
负数:反码 = (符号位除外)各位按位取反;
- 补码
正数:补码 = 原码;
负数:补码 = (符号位除外)各位按位取反 +1(末位+1);
- 移码
对原码的补码首位(符号位)取反;
用于表示浮点数中的阶码,码值大真值就大;
浮点数
IEEE754标准格式:
数值 N = 2P x M
符号位 | 阶码(用移码表示) | 尾数(用原码表示) |
---|---|---|
S | P | M |
字长 | 符号位长度 | 阶码长度 | 尾数长度 | |
---|---|---|---|---|
单精度浮点数 | 32 | 1 | 8 | 23 |
双精度浮点数 | 64 | 1 | 11 | 52 |
单双精度浮点数小数点左边隐含由一位1,其值为 1.??~? x 2P ,其中尾数就是 ??~? 部分。
奇偶校验
奇校验: 增加一个校验位,使编码中1的个数为奇数;
偶校验: 增加一个校验位,使编码中1的个数为偶数;
CRC校验
给出原始数据(例如 10110)和多项式(例如 G(x) = x4+x+1),计算CRC校验码:
-
根据多项式阶数r(这里r=4),在原始数据后添加r个0,作为被除数(101100000);
-
由多项式得到除数(这里为 10011);
-
进行模2除法,得到余数1111(余数不足r则左边补0,补齐至r位);
-
余数添加到原始数据后(101101111),作为结果;
-
接收方对收到的结果用多项式进行模2除法,余数为0则无错误;
海明校验
给出原始数据(例如 1011),计算海明校验码:
信息位和校验位排序:
位数 | 7 = 4 + 2 + 1 | 6 = 4 +2 | 5 = 4 + 1 | 4 | 3 = 2 + 1 | 2 | 1 |
---|---|---|---|---|---|---|---|
信息位 | D3 = 1 | D2 = 0 | D1 = 1 | D0 = 1 | |||
校验位 | R2 | R1 | R0 |
2k - 1 ≥ n + k ,k为校验位位数,n为数据为位数,k从2开始带入计算即可。
计算校验码:
使用偶校验方式:
R2相关的为信息位所在数位出现4的 D3、D2、D1,即 101 ,根据偶校验 R2 = 0;
R1相关的为信息位所在数位出现2的 D3、D2、D0,即 101 ,根据偶校验 R2 = 0;
R2相关的为信息位所在数位出现1的 D3、D1、D0,即 111 ,根据偶校验 R2 = 1;
所以最终校验码根据数位上的数据得出:1010101
校验和纠错:
对于偶校验得到的校验码 1010101 来说:
D3、D2、D1、R2 偶校验结果为 0; D3、D2、D0、R1 偶校验结果为 0; D3、D1、D0、R0 偶校验结果为 0; 全为0表示正确。
如果校验码为 1011101 ,则:
D3、D2、D1、R2 偶校验结果为 1; D3、D2、D0、R1 偶校验结果为 0; D3、D1、D0、R0 偶校验结果为 0;
计算结果为100,则位数4(22)上的数据错了,将该数据取反即可纠错。
计算机组成及主要部件的基本工作原理
计算机硬件组成
运算器、控制器、存储器、输入设备、输出设备
CPU组成
-
运算器
- 算数运算单元(Arithmetic and Logic Unit,ALU),实现对数据的算术运算和逻辑运算;
- 累加寄存器(Accumulator,AC),运算结果或源操作数的存放区;
- 数据缓冲寄存器(Data Register,DR),暂时存放内存的指令或数据;
- 状态条件寄存器(Program Status Word,PSW),保存指令运行结果的条件码内容,如溢出标志等;
-
控制器
CPU依据指令周期的不同阶段来区分二进制的指令和数据
- 指令寄存器(Instruction Register,IR),暂存CPU执行指令;
- 程序计数器(Program Counter,PC),存放指令执行地址;
- 地址寄存器(Address Register,AR),保存当前CPU所访问的内存地址;
- 指令译码器(Instruction Decoder,ID),分析指令操作码;
-
寄存器组
-
内部总线
存储器
寄存器 | 片内高速缓存 | 片外高速缓存 | 主存储器 | 外部存储器 | 远程二级存储 |
---|---|---|---|---|---|
cache | SRAM,DRAM,DDRAM | Flash,EEPRAM | 磁盘,光盘,SD卡 | 网络存储 |
计算机采用分级存储体系的主要目的是解决存储容量、成本和速度之间的矛盾问题。
cache命中率与CPU读取平均时间:
设CPU读取一次cache时间为1ns,读取一次内存时间为1000ns,90%命中chche,读取一次平均时间 = (0.9 x 1 + 0.1 x 1000)ns
大小端:
大端模式:数据高字节保存在内存低地址中,数据低字节保存在内存高地址中,即反向;
小端模式:数据高字节保存在内存高地址中,数据低字节保存在内存低地址中,即同向;
计算机体系结构
冯诺依曼结构和哈佛结构
冯诺依曼结构程序和数据共用存储空间;
哈佛结构程序和数据存放在不同的存储空间中,有独立的地址和数据总线,可以在一个周期中同时获得指令字和操作数;
CISC和RISC
指令集类型 | 指令 | 寻址方式 | 实现方式 | 其它 |
---|---|---|---|---|
CISC 复杂指令集 | 数量多,变长 | 支持多种 | 微程序控制技术(微码) | 研制周期长 |
RISC 精简指令集 | 数量少,定长 | 支持方式少 | 重叠寄存器窗口技术; 增加通用寄存器; 超流水和超标量技术; 硬布线逻辑与微程序相结合; | 优化编译,有利于对高级语言的支持 |
流水线技术
原理:
比如下面三段式的结构,在未使用流水线的情况下:
阶段 \\ 时间 | T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 |
---|---|---|---|---|---|---|---|---|---|
取指 | 1 | 2 | 3 | ||||||
分析 | 1 | 2 | 3 | ||||||
执行 | 1 | 2 | 3 |
使用流水线后:
阶段 \\ 时间 | T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 |
---|---|---|---|---|---|---|---|---|---|
取指 | 1 | 2 | 3 | ||||||
分析 | 1 | 2 | 3 | ||||||
执行 | 1 | 2 | 3 |
参数计算:
- 流水线周期
执行时间最长的段的时间;
- 流水线总执行时间 (一个任务时间)
1条指令总执行时间 + ( 总指令条数 - 1 ) x 流水线周期
- 流水线吞吐率 (单位时间内可执行任务数量)
指令条数 / 流水线总执行时间 (通常结果换算成以秒计的数据)
-
流水线加速比
不使用流水线执行时间 / 使用流水线总执行时间
可靠性与系统性能评测基础知识
可靠性指标
平均无故障时间 MTTF(Mean Time To Failure) = 1 / 失效率
平均故障修复时间 MTTR(Mean Time To Repair) = 1 / 修复率
平均故障间隔时间 MTBF(Mean Time Between Failure) = MTTF + MTTR (MTBF≈MTTF)
系统可用性 = MTTF / MTBF = MTTF / (MTTF + MTTR)
串并联系统可靠性计算
每个设备可靠性R1、R2、R3……
- 串联系统
一个系统不可靠整个系统就崩溃;
可靠性 R = R1 x R2 x R3 x ……
- 并联系统
所有系统都不可靠整个系统才崩溃;
可靠性 R = 1 - (1-R1) x (1-R2) x (1-R3) x ……
性能指标
主频和时钟周期;
MIPS 每秒处理的百万计的机器语言指令数;
其它补充
运算符相关
运算符优先级(从上至下递减):
- ()、[]、成员选择等;
- 单目运算符,如++、–、!、~等;
- 乘法运算符*、除法运算符/、求余运算符%;
- 加法运算符+、减法运算符-;
- 移位运算符<<、>>;
- 关系运算;
- 位运算;
- 逻辑运算;
- 三目运算;
- 赋值运算;
网络相关
OSI/RM七层模型
层次 | 名称 | 功能 | 设备与协议 |
---|---|---|---|
7 | 应用层 | 实现具体应用功能 | 基于TCP:POP3、FTP、HTTP、Telent、SMTP 基于UDP:DHCP、TFTP、SNMP、DNS Samba、NFS |
6 | 表示层 | 数据的格式与表达、加密、压缩 | |
5 | 会话层 | 建立、管理和终止会话 | |
4 | 传输层 | 端到端连接 | TCP、UDP |
3 | 网络层 | 分组传输和路由选择 | 三层交换机、路由器 ARP、RARP、IP、ICMP、IGMP |
2 | 数据链路层 | 传送以帧为单位的信息 | 网桥、交换机、网卡 PPTP、L2TP、SLIP、PPP |
1 | 物理层 | 二进制传输 | 中继器、集线器 |
光纤
类型 | 纤芯半径 | 光源 | 成本 | 可靠性 | 传输距离 |
---|---|---|---|---|---|
多模光纤 MMF | 大 | 发光二极管LED | 低 | 低 | 近 |
单模光纤 SMF | 小 | 激光二极管LD | 高 | 高 | 远 |
IPv6
- IPv6中IP地址的长度为128位;
- IPv6简化了报文头部格式,加快报文转发,提高了吞吐量;
- 提高安全性,身份认证和隐私权是IPv6的关键特性;
- 支持更多服务类型;
- 允许协议继续演变,增加新的功能,使之适应未来技术的发展;
IPv4和IPv6过渡技术: 双协议栈;隧道技术;翻译技术;
层次化局域网模型
- 核心层: 提供不同区域之间的最佳路由和高速数据接入;
- 汇聚层: 将网络业务连接到接入层,并且实施与安全、流量、负载和路由相关的策略;
- 接入层: 为用户提供在本地网段访问应用系统的能力;
建筑物综合布线系统
- 工作区子系统: 实现工作区终端设备与水平子系统之间的连接,由终端设备连接到信息插座的连接线缆组成;
- 水平子系统: 实现信息插座和管理子系统(跳线架)间的连接,将用户工作区引至管理子系统;
- 管理子系统: 由交连、互连配线架组成,管理点为连接其他子系统提供连接手段;
- 垂直干线子系统: 实现计算机设备、程控交换机(PBX)、控制中心与各管理子系统间的连接,是建筑物干线电缆的路由;
- 设备子系统: 由设备间中的电缆、连接器和有关的支撑硬件组成,作用是将计算机、PBX、摄像头、监视器等弱电设备互连起来并连接到主配线架上;
- 建筑群子系统: 将一个建筑物的电缆延伸到建筑群的另外一些建筑物中的通信设备和装置上,是结构化布线系统的一部分,支持提供楼群之间通信所需的硬件;
网络需求分析
网络总体需求分析、综合布线需求分析、网络可用性与可靠性分析、网络安全性需求分析、工程造价评估;
媒体相关
媒体分类
- 感觉媒体: 直接作用于人的感官,产生感觉(视、听、嗅、味、触觉)的媒体,例如:语言、音乐、音响、图形、动画、数据、文字等都是感觉媒体;
- 表示媒体: 表示媒体是指用来表示感觉媒体的数据编码。如图像编码、文本编码和声音编码等。感觉媒体转换成表示媒体后,能够在计算机上进行加工处理和传输;
- 表现媒体: 表现媒体是指进行信息输入或输出的媒体。如键盘、鼠标、扫描仪、话筒、数码相机、摄像机为输入表现媒体,显示器、打印机、扬声器、投影仪为输出表现媒体;
- 存储媒体: 存储媒体是指用于存储表示媒体的物理实体。如硬盘、光盘等;
- 传输媒体: 传输媒体是指传输表示媒体(即数据编码)的物理实体。如电缆、光缆等;
以上是关于计算机进制及其转换的主要内容,如果未能解决你的问题,请参考以下文章