数制与码制

用0和1可以组成二进制数表示是数量的大小,也可以表示对立的两种逻辑状态。数字系统中常用二进制数来表示数值。

       在微处理器、计算机和数据通信中,采用十六进制。任意一种格式的数可以在十六、二和十进制之间相互转换。

       二进制数有加、减、乘、除四种运算,加法是各种运算的基础。特殊二进制码常用来表示10进制数。如8421码、2421码、5421码、余三码、余三码循环码、格雷码、ASCII等。

数制

我们常见的数字是十进制,而计算机中,常常会接触到二进制、八进制、十六进制,而这三种进制的转换较简单,若是进行除以上进制外的其他进制的表达,一般先转换为十进制数,再根据计算进制数的计算原理计算所需的进制。

常见进制的表示

数制与码制_第1张图片

(注意下标或前缀)

二进制的优点:

(1)易于电路表达— 0、1两个值,可以用管子的导通或截止,灯泡的亮或灭、继电器触点的闭合或断开来表示。

(2)二进制数字装置所用元件少,电路简单、可靠 。

(3)基本运算规则简单, 运算操作方便。

十六进制的优点:

    1)与二进制之间的转换容易;

2)计数容量较其它进制都大。假如同样采用四位数码。

3)书写简洁。

原码、反码、补码

补码或反码的最高位为符号位,正数为0,负数为1。

当二进制数为正数时,其补码、反码与原码相同。

当二进制数为负数时,将原码的数值位逐位求反,然后在最低位加1得到补码。

数制与码制_第2张图片

 4位二进制原码、反码、补码对照表

数制与码制_第3张图片

 n位带符号二进制数的原码、反码和补码的数值范围 :

数制与码制_第4张图片

 

二进制数的算数运算

对无符号数,则机器字长的所有位都参与表示数值。

l  对有符号数,则要留出机器字长的最高位作为符号位,其余表示数值。

无符号二进制数的算术运算

无符号二进制的加法规则: 0+0=0,0+1=1,1+1=10。

计算两个二进制数1010和0101的和

数制与码制_第5张图片

 

无符号二进制数的减法规则:0-0=0, 1-1=0,1-0=1   0-1=11

计算两个二进制数1010和0101的差

 数制与码制_第6张图片

 

无符号二进制的乘法规则:0×0=0,0×1=0,1×0=0 ,1×1=1 。

计算两个二进制数1010和0011的积。

数制与码制_第7张图片

 

无符号二进制的除法规则:0÷1=0,1÷1=1 。

计算两个二进制数1010和0011的商

 数制与码制_第8张图片

 

有符号二进制数的算术运算

有符号的二进制数表示:二进制数的最高位表示符号位,且用0表示正数,用1表示负数。其余部分用原码的形式表示数值位。

二进制补码的减法运算:减法运算的原理:减去一个正数相当于加上一个负数A-B=A+(-B),对(-B)求补码,然后进行加法运算。

如:试用4位二进制补码计算5-2。

数制与码制_第9张图片

(注意符号)

溢出的判断

注意溢出与进位及补码运算中的进位丢失间的区别:

   (1) 进位和借位是指无符号数运算结果的最高位向更高位进位或借位,通常多位二进制数将其拆成二部分或三部分或更多部分进行运算时,数的低位部分均为无符号数,只有最高部分数才为符号数。由此可知:进位主要用于无符号数的运算,这与溢出主要用于符号数的运算是有区别的。

   (2)溢出与补码运算中的进位丢失也应加以区别。

例,两负数相加;-50-5=-55

 数制与码制_第10张图片

       两负数相加,结果为负数正确。这里虽然出现了补码运算中的进位,但由于和数并没有超出8位二进制数-128~127的范围,因此无溢出,应将进位位丢失,最高位作为符号位

判别溢出与进位的方法:设符号位向进位位的进位为CY,数值部分向符号位的进位为CS ,则溢出:

 O=1,有溢出; O=0,无溢出;

数制与码制_第11张图片

 

码制

BCD码

二—十进制码 (数值编码),(BCD码—Binary Code Decimal),用4位二进制数来表示一位十进制数中的0~9十个数码。从4 位二进制数16种代码中,选择10种来表示0~9个数码的方案有很多种。每种方案产生一种BCD码。

数制与码制_第12张图片

8421码、2421码、5421码都是有权码,其对应的权值对应名称,如8421码表示90即为1001 0000(1001对应=8*1+4*0+2*0+1*0=9,0000对应0);2421码表示90即为1111 0000(1111对应2*1+4*1+2*1+1*1=9,0000对应0),同理5421码表示90即为1100 0000(1100对应5*1+4*1+2*1+1*1=9,0000对应0);

用BCD码来表示十进制数:

 数制与码制_第13张图片

余3码

余3码是由8421BCD码加上0011形成的一种无权码,由于它的每个字符编码比相应的8421码多3,故称为余三码。BCD码的一种。余3码的特点:当两个十进制数的和是9时,相应的余3码的和正好是15,于是可自动产生进位信号,而不需修正。1(0100)和9(1100), 2(0101)和8(1011),…6(1001)和4(0111)的余3码互为反码,这在求对于模9的补码很方便。

余3循环码

每一位的1并不代表固定的数值,它具有格雷码的优点,相邻的两个代码之间仅一位的状态不同。按余3码循环码组成计数器时,每次转换过程只有一个触发器翻转,译码时不会发生竞争-冒险现象。(变权码)

格雷码

格雷码是一种常见的无权码,特点是任何两个相邻代码之间仅有一位取值不同。其首、尾两个代码之间也只有一位不同,因此,格雷码又称为循环码。

此外,格雷码最高位的0和1只改变一次;若以最高位的0和1之间的交界为轴,其他位的代码是上下对称的。所以,格雷码又是反射码。

格雷码是一种错误最小化的编码。当模拟量发生微小变化,格雷码仅仅改变一位,这与其它码同时改变2位或更多的情况相比,更加可靠,且容易检错。例如,传输十进制的3到4,二进制是011到100三位都发生变化,但格雷码是010到110,只有b2发生变化。

格雷码构成方法:

一位格雷码有两个代码:0 和 1。

(n+1)位格雷码中的前 2^n个代码是将 n位格雷码,按顺序排列,最高位补0。

(n+1)位格雷码中的后 2^n个代码是将n位格雷码,按倒序排列,最高位补1

数制与码制_第14张图片

 3位二进制码与格雷码

数制与码制_第15张图片

4位二进制与格雷码: 

数制与码制_第16张图片 

二进制码到格雷码的转换

(1)格雷码的最高位(最左边)与二进制码的最高位相同。

(2)从左到右,逐一将二进制码相邻的两位相加(舍去进位),作为格雷码的下一位。

数制与码制_第17张图片

 

格雷码到二进制码的转换

(1)二进制码的最高位(最左边)与格雷码的最高位相同。

(2)将产生的每一位二进制码,与下一位相邻的格雷码相加(舍去进位),作为二进制码的下一位。

数制与码制_第18张图片

 ASCII码

ASCII码即美国标准信息交换码,是一种字符编码标准,它共有128个代码,可以表示大、小写英文字母、十进制数、标点符号、运算符号、控制符号等,每个字符都用一个7位的二进制数表示,可以表示的字符范围是0-127。普遍用于计算机的键盘指令输入和数据等。

数制与码制_第19张图片

Unicode码

unicode码是一种国际标准编码,它用于表示字符和文本,是一种计算机科学中的标准,用于表示文本和字符。它可以表示世界上所有语言的字符,包括汉字、字母和其他符号,是一种多字节编码系统,可以表示世界上大多数语言的字符,它是一种用于表示文本的编码系统,可以用来表示几乎所有的字符。

Unicode的全称是“统一码”,它是一种字符编码系统,用于表示字符和文本,它使用多字节编码,可以表示世界上大多数语言的字符,它的目的是使用一种编码系统来表示世界上所有语言的字符,以便它们可以在计算机系统中进行交换和处理。

对该编码的进一步认识可在该文章中学习:

https://blog.csdn.net/LemonWatermelon/article/details/90300413

UTF-8编码

UTF-8编码是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部分修改后,便可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。

ASCII码、Unicode码、UTF-8编码是目前键盘输入信息的输入法原理。ASCII编码是1个字节,而Unicode编码通常是2个字节。ASCII是单字节编码,无法用来表示中文;而Unicode可以表示所有语言。用Unicode编码比ASCII编码需要多一倍的存储空间。UTF-8编码是基于Unicode编码优化为“可变长编码”,可节省空间提高效率。

你可能感兴趣的:(数电,进制,编码,码制,溢出)