计算机中数制及其之间转换
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.6 计算机中信息的表示
1.6.1 数的编码表示 1.6.2 非数值数据的编码
1.6.1 数的编码表示
原码
在计算机中,数的符号位用“0”、“1”表示, 用“0”表示正号,用“1”表示负号,数值位不变的 编码为原码。
反码
– 对于正数:与原码同形 – 对于负数:符号位保持不变,其他位按位求反
补码(作加减法时用)
– 对于正数:与原码同形 – 对于负数:先求反码,再在最低位加“1”
机器数的表示 机器数:一个数及其符号在机器中的数值化 表示。 真值:机器数所代表的数。 假定一个数在机器中占用8位。 (1)原码 +7: 00000111 -7: 10000111 +0: 00000000 -0: 10000000
1.5.3二进制数的算术运算
1.二进制数的加法运算
规则:0+0=0;0+1=1;1+0=1;1+1=0(向 高位进1)
1001 + 1011 10100
被加数 加数 和
2.二进制数的减法运算
规则:0-0=0; 1-0=1; 1-1=0;0-1=1 (向高位借1)
1010 – 0111 0011
3.二进制数的乘法运算
1.5 数制及不同数制之间的转换
1.5.1 进位计数制 •十进制(Decimal) •二进制(Binary) •八进制(Octal) •十六进制(Hexadecimal) •任意的K进制 1.5.2 不同数制之间的相互转换 1.5.3 二进制数的算术运算
1.5.1进位计数制 进位计数制:按进位的方法进行计数 。 基数: 某种进位计数制所使用数码的个数 。 位权:计算每个“数码”在所在位上代表的数值时所乘 的 常数。它是一个指数,以“基数”为“底”,其 幂 是数位的“序号”.序号为以小数点为 界,其左边的数位序号为0,向左每进一位序号 加一,先后向右每走一位序号减一。 例:(1725.34)10 =
汉字的输入码、机内码、字形码都不是唯一的,为便于计 算机系统之间汉字的信息交换,我国制定《信息交换用汉字编码 字符集基本集》即GB 2312-80,提供了国家信息交换用汉字编 码,称为国标码。用于统一不同系统所使用的不同汉字输入码。 国标码的每个字节+80H = 汉字机内码, 这样得到的内码 是唯一的。 各种代码之间的关系
八进制(Octal)
八进制用的数码共有8个,0~ 7,则基数是8;相 邻两位之间为“逢八进一”和“借一当八”的关系,
例:八进制数1537.6可表示为: 1537.6=1×83+5×82+3×81+7×80 +7×8-1
十六进制(Hexadecimal)
十六进制用的数码共有16个,除了0~ 9外又增加 了6个字母符号A、B、C、D、E、F,分别对应了10、 11、12、13、14、15。其基数是16,相邻两位之 间为“逢十六进一”和“借一当十六”的关系。 例:数3AC7.D可表示为:
→输入码 国标码 内码→字形码 → → →
汉字输入
汉字输出
外码
a(拼音 拼音) 拼音 kbsk(五笔字型 五笔字型) 五笔字型 1601(区位码 区位码) 区位码
“啊”的输入 啊
内 码
B0A1
“啊” 啊 字形码 的地址
汉 字 库
规则:0*0=0;0*1=0;1*0=0;1*1=1
★逻辑运算
(1)“或”运算(“+” “∨”) 0+0=0;0+1=1+0=1;1+1=1 (2)“与”运算(“×” “∧”) 0*0=0;0*1=1*0=0;1*1=1 (3)“非”运算(上方加一“-”线)“异或”运算 (“⊕”) 0⊕0=0; 0⊕1=1⊕0=1; 1⊕1=0
00011001 + 11011100 11110101
结果符号位为1,是负数。 由于负数的补码与原码不一致,所以在将其求补 得到原码,结果为10001011(即-11)
1.6.2非数值数据的编码
1、BCD码 每位十进制数用四位二进制数编码表示。 25=(0010 0101)BCD 2、西文字符编码 每一个字符有一个编码。 ASCII码(American Standard Code for Information Interchange)是美国信息交换标准代码的简称。ASCII码占一 个字节,有7位ASCII码和8位ASCII码两种,7位ASCII码称为标 准ASCII码,8位ASCII码称为扩充ASCII码。 7位二进制数给出了128个不同的组合,表示了128个不 同的字符。包括大小写英文字母、数字、运算符号、标点符号、 控制码。
3、汉字编码 汉字输入码 也称外码,专门用来向计算机输入汉字的编码。有拼音码、字形码、 音形混合码、数字码。如智能ABC为拼音码、五笔为字形码等。 显示字形码 要在屏幕或打印机输出汉字,就要用到汉字字形信息。这些信息存 放在计算机中汉字字形库中。 构造汉字字形有两种方法:矢量法和点阵法。 软字库:汉字字库存放在磁盘上,使用时全部或部分调入内存。 硬字库:固化在EPROM或MASK-ROM的芯片中的汉字字库。 汉字机内码 将输入码转换成为表示其字形码的存储地址为机内码。
(2)反码 +7: 00000111 -7: 11111000 (3)补码 +7: 00000111 -7: 11111001
+0: 00000000 -0: 11111111
+0: 00000000 -0: 00000000
补码运算举例
补码运算规则 [X]补+[Y]补=[X+Y]补 25-36=-11 [25]补=00011001 [-36]补=11011100
6.十进制转化为r进制 整数部分:除以r取余数,直到商为0,余数从下到上排列。 小数部分:乘以r取整数,整数从上到下排列。例:
2 100 2 50 2 25 2 12 2 6 2 3 2 1 0
0.345 8 100 0 × 2 8 12 4 0 0.690 0 8 1 4 1 × 2 0 1 0 0.380 1 0 × 2 16 100 1 0.760 0 16 6 4 1 × 2 0 6 (100) D = (144)O = (64) H 0.520 1 × 2 0.040 1 (100 .345 ) D ≈ (1100100 .01011 ) B (100)D=(144)O=(64)H=(1100100)B
ASCⅡ ASCⅡ码
高4位 位 低4位 位 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 NULL SOH STX ETX EOT ENQ ACK BELL BS HT LF VT FF CR SO SI 0001 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 0010 空格 ! " # $ % & , ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 0011 @ A B C D E F G H I J K L M N O 0100 P Q R S T U V W X Y Z [ \ ] ^ _ 0101 ` a b c d e f g h i j k l m n o 0110 p q r s t u v w x y z { ∣ } ~ DEL 0111
3AC7.D=3×163+10×162+12×161+7×160 +13×16-1
常用数制对照表
十进制(D) 二进制(B) 八进制(O) 十六进制(H) 0 0000 0 0 1 0001 1 1 2 0010 2 2 3 0011 3 3 4 0100 4 4 5 0101 5 5 6 0110 6 6 7 0111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 a 11 1011 13 b 12 1100 14 c 13 1101 15 d 14 1110 16 e 15 1111 17 f
十进制(Decimal)
例:数 5678.4可表示为:
5678.4=5×103+6×102+7×101+8×100 +4×10-1
二进制(Binary)
二进制有两个特点: •数码仅采用“0”和“1”,所以基数是2; •相邻两位之间为“逢二进一”或“借一当二”的关 系。 例:数1100.1可表示为: 1100.1=1×23+1×22+0×21+0×20 +1×2-1
任意的K进制
K进制用的数码共有K个,其基数是K,相邻两位之间 为“逢K进一”和“借一当K”的关系。 该表达式就是数的一般展开表达式:
n
D= ∑Ak Nk
k=-m
其中:N为基数,Ak为第K位上的 数码, Nk为第K位上的位权
Biblioteka Baidu
1.5.2不同数制之间的相互转换
1.二进制数、八进制数、十六进制数转换成十进制数 方法:按位权展开 2.十进制数转换成二进制数 方法:整数部分连续除以二,直到商数为零,逆 向取余;小数部分连续乘二,直到小数部分为零或已得到 足够的整数位,正向取整。 3.十进制数转换成八进制数和十六进制数同上 4.八进制数与二进制数的转换 方法:将每一位八进制数用3位二进制数代替 5.十六进制数与二进制数的转换 方法:将每一位十六进制数用4位二进制数代替
八进制和十六进制转化为二进制 每一个八进制数对应二进制的三位。 每一个十六进制数对应二进制的四位。 (2C1D)H=(0010 1100 0001 1101)B (64)H=(0110 0100)B 2 C 1 D 6 4 (7123)O=(111 001 010 011)B (144)O=(001 100 100)B 7 1 2 3 1 4 4 二进制转化成八进制和十六进制 整数部分:从右向左进行分组。 小数部分:从左向右进行分组。 转化成八进制时三位一组。 转化成十六进制时四位一组,不足补零。 (11 0110 1111.1101 01)B=(36F.D4)H 3 6 F D 4 后边补两个零,变成0100 (1 101 101 110.110 101)B=(1556.65)O 1 5 5 6 6 5