计算机中数据的表示与编码
1.数的进位计数制
- 基数:每个数位上所能使用的数码的个数
- 位权:处在某一位上的 1 所表示的数值的大小,是基数的整数幂
- 十进制(101.1)10=1x10^2 + 0x10^1 +1x10^0 + 1x10 ^-1
- 二进制(101.1)2 =1x2^2 + 0x2^1 + 1x2^0 +1x2^-1=(5.5)10
- | 基数 | 位权 | 计数符号 |
---|---|---|---|
十进制 | 10 | 10^i | 0,1,2,…9 |
二进制 | 2 | 2^i | 0,1 |
八进制 | 8 | 8^i | 0,1,2,…7 |
十六进制 | 16 | 16^i | 0~9,A,B,C,D,E,F |
R进制 | R | R^i | 0,…R-1 |
- 进制转换
- 十进制数转换为二进制
十进制数转换为其他数类似 - 二进制数转换为八进制数
- 方法—三合一法
- 整数部分:自右向左(三个一组,不够补0,每组对应一个八进制数码)
- 小数部分:自左向右(三个一组,不够补0,每组对应一个八进制数码)
- 八进制转换为二进制
- 方法:一分三法、
- 二进制转换为十六进制
- 方法:四合一法
- 整数:自右向左(四个一组,不够补0,每组对应一个十六进制数码)
- 小数:自左向右(四个一组,不够补0,每组对应一个十六进制数码)
- 十六进制转换为二进制
- 十进制数转换为二进制
2.数值型数据在计算机中的表示
- 计算机中所有的信息都是以二进制形式存放的
- 符号位:二进制数的最高位(最左边)
- 符号位为 0 表示该数为正数,符号位为 1 表示该数为负数
- 正负号数字后的数称为机器数
- 例:(+67)10=(01000011)2 (-67)10=(11000011)2
- 定点数:通常只有纯小数或整数才能用定点数表示
- 定点整数:小数点默认为在二进制数的最后(小数点不占二进制位)符号位后表示的是一个整数 ,例(-50)10=(10110010)2
- 定点小数:小数位默认在符号位之后(不占二进制位)符号位右边的第一位是小数的最高位 例:(-0.39062)10=(10110010)2
- 浮点数:小数点位置不固定的数(通常既有整数部分又有小数部分)
-
二进制数 M=+(-)SX2^+(-)p
-
M,S,P均是二进制
-
S–M尾数,是一个定点小数
-
P–M的阶码,是一个二进制整数,指明二进制数M的小数点的实际位置
-
S与P的位数是根据实际需要来设定的
-
在计算机中表示一个浮点数,其结构如:
P 数符 尾数 100 1 11010100 设尾数为8位,阶码为6位,则以上表示二进制数(-1101.010)2=(-0.110101)2X2^(100)的存放形式
-
- 计算机中的数据单位
- 位(bit):二进制位,是计算机中数据最小的单位
- 字节(Byte):1Byte=8bit
- 字(Word):一个存储单元所存放的内容(常用来表示数据或信息的长度)
- 字长:一个存储单元(或一个字)所包含的二进制位数它是衡量计算机精度和运算速度的主要技术指标,通常说计算机是16位机,32位机1或64位机,就是指计算机的字长是16位,32位或64位
- 信息数量或存储容量的单位及换算关系:
- 1 TB= 2^(10) GB=2^(20) MB=2^(30)KB= 2^(40) B
- 数值数据在计算机中的表示
- 原码:一个二进制数同时包含符号和数值两部分,用最高位表示符号,其余为表示数值,这种表示带符号数的方法为原码表示法
- 【+00010011】原=00010011 【-00010011】原=10010011
- 反码:反码是另一种表示有符号数的方法,对于正数,其反码与原码相同,对于负数,在求反码的时候,除了符号位外,其余各位按位取反即“1”换成“0”,“0”换成“1”
- 【-00010011】原=10010011 【-00010011】反=11101100
- 补码:是表示带符号数的直接方法,对于正数,其补码与原码相同,对于负数,则其补码为反码加一
- 【-00010011】原=10010011 【-00010011】反=11101100 【-00010011】补=11101101
- 【+0】=【-0】=00000000
- 采用补码来表示正,负整数时,+0,-0的·取码是完全相同的,而原码对+0,-0的取码是不相同的
- 【x+y】补=【x】补+【y】补
- 【x-y】补=【x】补+【-y】补
- 【【x】补 】补=【x】原
- 补码加法运算不用考虑数值的正负,直接进行补码加法即可,减法可以通过补码的加法运算实现,结果最高位表示正负
- 原码:一个二进制数同时包含符号和数值两部分,用最高位表示符号,其余为表示数值,这种表示带符号数的方法为原码表示法
3.二进制的编码
计算机的内部采用二进制编码
计算机能处理的数字,字符,汉字,图形,图像,声音,视频等信息都要用特定的二进制数来表示
- BCD码(Binary Code Decimal)
-
用4位二进制表示一位十进制数的编码
-
8421码(常用BCD码)
- 将十进制数码0 ~ 9 中的每个数分别用4位二进制编码表示,对于多位数,只需将他的每一位数字用8421码直接列出即可
-
常用于会计系统
-
- 西文字符的编码与表示
- 字符编码(Character Code):用二进制编码来表示字母,数字以及专门的符号
- ASCII码(美国信息交换标准代码)
- 每个字符对应一个整数值
- 规定:字节(8位)最高位为0 , 7 位给出128个编码
- 128中字符:95个可见字符,33个控制字符
- ASCII编码规律:
- 0 ~9 字符码高4位编码为0011,低4位为0000 ~ 1001,去掉高4位时,低4位正好是0 ~9 的二进制数
- ASCII 26个字母编码是连续的
- 字母A ~ Z码值为65 ~ 90,字母a ~ z 值为97 ~ 122
- 大写字母第6位值为0,小写字母第6位值为1;他们之间的ASCII码值十进制相差32
- 汉字编码
- 要想在计算机中处理汉字,必须解决汉字的输入,存储,显示和打印字符的编码问题
- 汉字输入码–汉字交换码–汉字内码–汉字字型码
- 汉字输入码:国标区位码,全拼,双拼,微软拼音,五笔等
- 汉字交换码:GB2312-80国家标准中有6763个汉字和682个非汉字字符,其字符及编码称为国标码(国际标准交换码)
- GB2312字符集的构成:一般常用汉字3755个,按汉语拼音排列;二级常用汉字3008个,按偏旁部首排列;非汉字字符682个;在国家标准GB2312-80中,每个汉字采用双字节表示
- 汉字国标码(输入码):采用两字节编码,每个字节使用低7位,最高位为0
- 汉字机内码
- 计算机系统内部为存储,处理和传输汉字而使用的代码
- 在汉字国标码的基础上把每个字节的最高位由0变1,其他位不变
- 汉字字形码(输出码)
- 显示或打印—必须巴汉子的机内码换成人们可阅读的方块字形式
- 汉字字形的字模数据,以点阵或矢量函数表示
- 字型码:显示字形码或打印字形码
- 点阵:16x16 ,24 x24 ,32x32,46x48
- 字库:存放汉字字形字模数据的容器
- 一个16x16点阵的汉字需要2x16=32个字节
- 工作过程:
1
.
- 要想在计算机中处理汉字,必须解决汉字的输入,存储,显示和打印字符的编码问题
- 对生活最美好的憧憬就是不放弃许愿的勇气