一、数制和编码
- 格式:doc
- 大小:103.00 KB
- 文档页数:7
计算机中的数制与编码在计算机科学中,数制和编码是非常重要的概念。
数制是一种数学表示法,用于表示不同类型的数值。
而编码是将字符、符号或信息转化为特定形式的过程。
数制和编码在计算机中扮演着至关重要的角色,它们用于存储、传输和处理数字和数据。
数制(Number System)在计算机中,常见的数制有二进制、十进制、八进制和十六进制。
每种数制有其各自的特点和用途。
1. 二进制(Binary System):二进制是最常见和基础的数制,在计算机中广泛使用。
它只包含两个数字0和1,以2为基数。
计算机内部存储和处理的数据都是以二进制形式表示的。
每个二进制位称为一个bit(二进制位),每8位为一个字节(Byte)。
2. 十进制(Decimal System):十进制是我们日常生活中最常用的数制,以10为基数,包含0-9的数字。
在计算机中,通常使用十进制数制进行人机交互和显示。
3. 八进制(Octal System):八进制以8为基数,包含0-7的数字。
在计算机中,八进制表示法不太常用,但是在Unix操作系统中仍然使用八进制权限表示法。
4. 十六进制(Hexadecimal System):十六进制以16为基数,包含0-9的数字和A-F的字母。
在计算机中,十六进制数制常用于表示内存地址和字节编码。
十六进制数更加简洁和紧凑,便于人们阅读和理解。
编码(Coding)在计算机中,数据和字符需要以特定的方式进行编码,以便计算机可以正确存储和处理它们。
常见的编码方式包括ASCII码、Unicode、UTF-8和UTF-16等。
1.ASCII码:ASCII(American Standard Code for Information Interchange)是一种最早的字符编码标准,用于将字符映射为对应的数字编码。
ASCII码使用7位二进制数表示128个字符,包括英文字母、数字、标点符号和控制字符等。
2. Unicode:Unicode是一种字符编码标准,为世界上几乎所有的字符建立了唯一的数字表示。
计算机中的数制和编码一、数制的概念:数制是用一组固定的数字和一套统一的规则来表示数目的科学方法。
按照进位方式计算的数制叫做进位数制。
例如:逢十进一即为十进制,逢二进一为二进制,逢八进一为八进制,逢十六进一为十六进制。
进位计数制有两个要素:基数和权值。
1、基数:它是指各种进位计数制中允许选用基本数码的个数。
例如:十进制的数码有0、1、2、3、4、5、6、7、8、9十个数码,所以十进制的基数为10;二进制的数码有0、1两个数码,所以二进制的基数为2;八进制的数码有0、1、2、3、4、5、6、7八个数码,所以八进制的基数为8;十六进制的数码有0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六个数码,所以十六进制的基数为16。
2、权值:每个数码所表示的数值等于该数码乘以一个与数码所在位置相关的常数,这个常数叫权值。
其大小是以基数为底,数码所在位置的序号为指数的整数次幂。
例如:十进制数356.4=3×100+5×10+6×1+0.4=3×102+5×101+6×100+4×10-1(3在百位上,所以3×100=3×102;5是在十位上,所以5×10=5×101;6是在个位上,所以6×1=6×100;0.4为小数,所以0.4=4×10-1)。
二、十进制(D ecimal notation)及其特点:1、两个特点:①、十个数码:0、1、2、3、4、5、6、7、8、9;②、进位方法:逢十进一,借一当十。
(满了10个就得进一位)2、基数:103、按权展开式:任意一个a位整数和b位小数的十进制数D可以表示为:D=D a-1×10a-1+D a-2×10a-2+…+D0×100+D-1×10-1+D-2×10-2+…+D-b×10-b4、十进制在书写中的三种表达方式:128或者128D或(128)10三、二进制(B inary notation)及其特点:1、两个特点:①、两个数码:0、1;②、进位方法:逢二进一,借一当二。
数制与编码1.数制和编码的基本概念▪数制数制是用一组固定的数字和一套统一的规则来表示数的方法。
常用的进位计数制有二进制(B)、八进制(O)、十进制(D)、十六进制(H)。
▪进位计数制有两个基本要素:基数和权(1)基数:数制所使用数码的个数。
例如,二进制的基数为2,十进制的基数为10。
(2)权:以基数为底,以某一数字所在位置的序号为指数的幂,称为该数字在该位置的权。
▪编码编码是采用少量的基本符号,选用一定的组合原则,以表示大量复杂多样的信息的技术。
任何信息必须转换成二进制形式数据才能由计算机进行处理、存储和传输。
2. 不同进位数制的特点▪十进制(Decimal)十进制的特点是:用10个数码(0~9)表示所有的数,基数是10, 采用逢十进一的计数方法。
▪二进制(Binary)二进制的特点是:由0、1组成,基数是2,加法采用“逢二进一”、减法采用“借一当二”的运算规则。
▪十六进制(Hexadecimal)十六进制:由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F组成,基数是16,加法用“逢十六进一”、减法采用“借一当十六”的运算规则。
▪八进制(Octal)八进制数的特点是:由0,1,2,3,4,5,6,7组成,基数是8,加法采用“逢八进一”、减法用“借一当八”的运算规则。
3. 进制数的转换(1)二进制<-->八进制数转换(2)十进制转为八进制(3)十六进制转为八进制4. 常见的信息编码▪BCD码二进制编码的十进制数,简称BCD码(Binarycoded Decimal)。
这种方法是用4位二进制码的组合代表十进制数的0,1,2,3,4,5,6 ,7,8,9 十个数符。
▪ASCII码ASCII(American Standard Code for Information Interchange,美国信息交换标准代码),它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
计算机基础知识之数制与编码数制是计算机基础知识中非常重要的一部分,它涉及到了计算机中数字的表示和存储方式。
编码则是将数字和字符等信息转换成计算机能够识别和处理的形式。
在计算机领域中,常用的数制有二进制、十进制、十六进制等,而编码方式常见的有ASCII、Unicode、UTF-8等。
接下来,我们将详细介绍数制与编码的概念、特性以及在计算机中的运用。
一、数制1.二进制二进制是计算机中最基本的数制。
它使用了 0 和 1 两个数字,表示任何一个二进制位(bit)的状态。
二进制的每一位表示2的幂,从右到左依次是1、2、4、8、16、32...二进制数的转换和计算相对复杂,因此在计算机中常用于存储和处理数据。
2.十进制十进制是人类最常用的数制。
它使用了0-9十个数字,每一位表示10的幂。
十进制数的转换和计算相对简单,因此在日常生活和大多数计算中都使用十进制。
3.十六进制十六进制是二进制的一种表示方式,它使用了0-9和A-F十六个数字,每一位表示16的幂。
十六进制数比较紧凑且易于理解,因此在计算机领域中经常用于表示二进制值,尤其是内存地址和寄存器的值。
4.八进制八进制使用了0-7八个数字,每一位表示8的幂。
八进制在计算机领域中应用较少,通常仅用于一些特定的场景。
5.其他进制除了二进制、十进制、十六进制和八进制外,还有其他一些进制,如二十四进制、三十六进制等。
但它们在计算机领域中使用相对较少。
二、编码编码是将数字、字符和其他信息转换成计算机能够理解和处理的形式。
常见的编码方式有ASCII、Unicode、UTF-8等。
1.ASCII码ASCII (American Standard Code for Information Interchange)是计算机中最早使用的编码方式,它共定义了128个字符,包括数字、字母、符号和控制字符等。
每个字符用一个字节(8位)来表示,其中的 7位用于字符的编码,最高位用于保持数据的完整性。
1. 基础知识对于二进制数和十六进制数的表达和运用要在本课程达到透彻掌握。
1.1 进位计数制和数制转换1.1.1 进位计数制“进位计数”是人类文明进程的重要一步,“非进位计数”十分繁琐(见扫描图2张)。
1. 十进制、二进制、十六进制10进制:10个数码,逢十进一;人类最习惯的进制,习惯到不习惯别的进制。
2进制:2个数码,逢二进一;最初用来表示电路状态,进而实现了进位和计算。
16进制:16个数码,逢十六进一;为了简化表达二进制数,一位对四位。
8进制:8个数码,逢八进一;也是为了简化表达,一位对三位。
(现在基本不用)规律:N进制,有N个数码,逢N进一2. 基数与位权基数:数码个数;10进制数码:0、1、2、3、4、5、6、7、8、9;2进制数码:0、1;16进制数码:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F;8进制数码:0、1、2、3、4、5、6、7。
推广:N进制,有N个数码。
位权:某位上的单位数字所代表的值,常用“基数K”表示;第四位第三位第二位整数最低位第一位小数第二位小数10进制数位权:10310210110010-110-22进制数位权:23 =8 22 =4 21 =2 20 =1 2-1 =0.52-2 =0.2516进制数位权:16316216116016-116-28进制数位权: 838281808-18-2N进制数位权:N3 N2 N1N0N-1 N-2注意:十进制是最普及的数据形式,因此各种计数制的位权的展开表达一般都用十进制数形式。
3. 数制标识两种标识方法:下标法:数据结尾加下标12316 11110 1112尾符法:D(Decimal)、B(Binary)、O或Q(Octal)、H(Hexadecimal)1.1.2 二──十进制转换1. 2进制转10进制唯一方法:按权展开求和。
了解位权,可以对任何计数制的一个数通过每位按权展开求和得到其对应的十进制数值。
例如:16进制数0123H=0×163+1×162+2×161+3×160=0+256+32+3=2912进制数1010 0101B=1×27+0×26+1×25+0×24+0×23+1×22+0×21+1×20=128+0+32+0+0+4+0+1=1652. 10进制转2进制整数部分:除2取余法。
小数部分:乘2取整法。
(降幂法:用于16位以内的2进制数尚可,位数再多就不好用了。
)要求:对16位以内2进制数的位权熟练掌握,达到心算自如。
对几个特殊数据掌握规律:D15D14D13D12 D11D10 D9D8D7 D6D5 D4D3D2D1 D0 215214213212 211 2102928 27 26252423 22 21 20 3276816384 8192 4096 2048 1024512 256 12864 32 16 8 4 2 1注意规律:第N+1位2进制数的位权等于其前面(右侧)所有位的位权之和+1。
1.1.3 十六进制数及其转换1. 16进制数——仅仅用于人际交流的时候对2进制数的简化表达(书写)。
为了简化对2进数的书写、记忆和交流,将4位2进制数用一个数码表示。
个数码符号。
同2进制数一样,不仅仅是一种表示方法,而且能够按16进制规律进行运算,所以称为16进制数。
2. 2──16转换4位对1位直接转换,前提是对4位2进制数的位权(8、4、2、1)烂熟于心。
3. 10──16转换16转10:按权展开求和。
10转16:只能用除16 取余,比较繁琐,也用不到。
(实用方法是以2进制为过渡:10进——2进——16进。
)1.2 二进制和十六进制运算1.2.1 二进制数的运算2进制数的设置不仅仅解决了电路的状态表达,而且使得运算规则简化,便于电路的实现。
加法口诀4句:0加0等于00加1等于11加0等于11加1等于10 (向高位进位)乘法口诀4句:0乘0等于00乘1等于0 1乘0等于0 1乘1等于11.2.2 十六进制数的运算了解加减即可,牢记逢16进1,没有实际用途。
乘除更不常用,仅仅说明运算规则是成立的。
例题1.4 1234H+5678H例题1.5 369CH ×31.3 计算机中数和字符的表示1.3.1 数的编码仅仅有了2进制的形式还不能完整表达数值信息,因为实际问题中的数据不仅有大小,还有正负、小数等特征。
按照一定的规则将数值的大小、正负、小数都表示出来的数据形式称为机器数,表示规则就是编码。
机器数的范围由数据的2进制位数决定,8位、16位、32位、64位、…; 正负号用一个数据位表示,即将符号也数字化,符号占最高位,0正1负;机器码:为了便于运算,对于有符号的数要按一定的编码规则编码,称为机器码。
最常用的是原码、反码、补码的编码方案。
规定:正数──原码=反码=补码=符号位0+绝对值 负数──原码=符号位1+绝对值反码=原码符号位1不变,其余位按位取反 补码=反码+1原则:计算机中一切有符号数都是以补码形式存储的(只不过正数的补码与原码相同,负数则不同)。
负数补码的定义:[-X]补=2N-|-X| 即:一个负数的N 位补码等于N 位的进位值(满度值)与负数绝对值之差。
换言之,一个N 位负数的原码、补码之和是N 位数的进位值(满度值)。
从定义可见:可见机器码与数据位数有很大关系:8位补码 =28 -|-X|=256-|-X| -3的8位补码为1111 1100B = FCH16位补码 =216 -|-X|=65536-|-X| -3的16位补码为1111 1111 1111 1100B =FFFCH实用求补方法有二:负数的绝对值连符号位一起求反加1;负数原码不连符号位求反加1。
规定:1000 0000或1000 0000 0000 0000为-128或-32768的补码。
(从-127推导)补码的符号扩展:把一个8位补码拉长为16位,不能高位补0(符号位补0成了正数),而是补充符号位!典型补码:(重点在:+0、-0、-1、-127、-128)8位无号数的数值范围:0~2558位有号数的数值范围:-128~+12716位无号数的数值范围:0~6553516位有号数的数值范围:-32768~+32767通用表示:N位无号数的表示范围为0~2N-1N位有号数的表示范围为-2N-1~+2N-1-1(谈到几位数当然是从1位开始,上述的N就是这个含义。
只有谈到第几位数的时候才从0开始算起。
)1.3.2 补码加法与减法求补运算:对一个2进制数按位取反,末尾加1。
(注意:求补运算与求一个负数的补码有区别,求补运算不考虑数据的正负,用于消化或提出负号。
)补码的特性:[X]补→[-X]补→[X]补可以看出,对一个2进制数进行一次求补运算,相当于提出/变换一次符号。
由于这个规律,使得机器进行加减运算的时候,无需区别符号和减号,一律按加法进行,符号位参与运算。
运算结果永远是补码,但是结果的符号位为0就是正数,正数的补码原码相同。
如果结果的符号位为1,那就是负数。
人在查看内存单元中的数据时,如果看到了一个负数,那就不是“真值”而是补码,需要进行一次求补运算(提出符号、剩下原码)才能看出“真值”。
(所以求补运算就是查看机器内的一个负数时必需要进行的转换。
)例题1.6 —191.3.3 无符号整数在非计算的场合使用2进制数据,往往是无符号的,比如地址、序号、字符编码等信息。
8位——1字节整数,可以表达数据范围0-255,共256个数。
16位——2字节正数(1个字),可以表达数据范围0-65535,共65536个数。
1.3.4 字符表示法字符在计算机内采用了2进制数字化表示。
美国人设计的计算机,所以字符的2进制编码当然采用了美国标准信息交换码(ASCII码)。
原始的电报、打字机、计算机键盘上的符号只有80多个,用2进制数来编码,只需7位机足矣。
但是计算机中以8位2进制为一个基本单位,因此字符编码也是给了8位2进制数,最高位用0。
但是人们很快将多余的编码空间利用了起来,出现了基本ASCII码(普通字符,编码最高位为0)和扩展ASCII码(最高位为1)。
一般ASCII码表常按列排出,每列16行(16个字符),共16列(前8列属基本ASCII,后8列属于扩展ASCII)。
每个ASCII码的2进制形式由高4位(列号)和低4位(行号)组成,即0000 0000B ~1111 1111B。
用16进制表示为00H ~ FFH,10进制0~255。
基本ASCII字符和扩展ASCII字符常用ASCII码(字符):控制字符:00H 空07H 喇叭Beep声0AH 换行(十进制的10)0DH 回车(十进制的13)可显示字符:20H 空格30H~39H 数字0~9 (注意,10个数字字符的ASCII码区别仅仅是低4位)41H~5AH 大写字母A~Z (大写字母的码+20H=小写字母的码)61H~7AH 小写字母a~z(小写字母的码-20H=大写字母的码)1.4 基本逻辑运算两个数据的对应位按逻辑规律产生一个结果,没有进位概念,所以也叫位运算。
1.4.1 与(AND)2个运算的位,沾0就得0。
1.4.2 或(OR)2个运算的位,沾1就得1。
1.4.3 非(NOT)1个位的运算,求相反值。
1.4.4 异或(XOR=Exclusive-OR)2个运算的位,相同得0,不同得1。
1.5 二进制数的应用1.5.1 编码和数值范围4位2进制数,共有16个数,数值范围0~15;(或者是16个编码、地址、….)7位2进制数,共有128个数,数值范围0~127;(或者是128个编码、地址、….)8位2进制数(一字节),共有256个数,数值范围0~255,可以为256个对象命名;16位2进制数(两字节),共有65536个数,范围0~65535,可为65536个对象命名;1.5.2 K、M、G、T21世纪,微电子技术将从3G(109)发展到3T(1012)。
存储容量由G位发展到T位,器件速度由GHz发展到THz,数据传输速率由Gbps发展到Tbps。
210=1024=1K≈103,220=1024K=1M≈106,230=1024M=1G≈109,240=1024G=1T≈1012;(用于字节数、单元数、空间数均可)1.5.3 色彩数与位数用1位2进制数表示色彩:只有亮与不亮,称为单色(实际是双色);用2位2进制数表示色彩:有00、01、10、11四种编码,可以呈现四种颜色;用4位2进制数表示色彩:有16种编码,可以呈现16种颜色;用8位2进制数表示色彩:有256种编码,可以呈现256种颜色;用16位2进制数表示色彩:有65536种编码,可以呈现65536种颜色;用24位2进制数表示色彩:有16777216种编码,可以呈现16M种颜色(真彩);用32位2进制数表示色彩:有4294967296种编码,可以呈现4G种颜色(真彩);1.5.4 16进制地址与空间0~3FFH(0~0011 1111 1111B)是10位2进数共1024个数据,可以为1K个单元编址;0~7FFH(0~0111 1111 1111B)是11位2进数共2048个数据,可以为2K个单元编址;0~0BFFH(0~1011 1111 1111B)是12位2进数(没用足)共3072个数据,可以为3K个单元编址;0~0FFFH(0~1111 1111 1111B)是12位2进数共4096个数据,可以为4K个单元编址;4位16进制数(16位2进制)可表示4×16=64K个数据或者表示64K单元地址;5位16进制数(20位2进制)可表示64K×16=1024K=1M个数据或表示1M单元地址;6位16进制数(24位2进制)可以表示16M个数据或者表示16M单元地址;8位16进制数(32位2进制)可以表示16M×16×16=4G个数据或表示4G单元地址。