第一章 基础知识 1.1 进位计数制与不同基数的数之间的转换 1.2 二进制数和十六进制数运算 1.3 计算机中数和字符的表示 第一章 基础知识 1.1 进位计数制与不同基数的数之间的转换 1.2 二进制数和十六进制数运算 1.3 计算机中数和字符的表示 1.4 几种基本的逻辑运算
1.1 进位计数制与不同基数的数之间的转换 1.1.1 二进制数 1.1.2 二进制数和十进制数之间的转换 1.1 进位计数制与不同基数的数之间的转换 1.1.1 二进制数 1.1.2 二进制数和十进制数之间的转换 1.1.3 十六进制数及其与二进制、十进制数 之间的转换
1.1.1 二进制数 作用:计算机中存储及计算数据 基数:二进制数的基数为2{0,1} 规则:逢二进一 加权表达式: 1.1.1 二进制数 作用:计算机中存储及计算数据 基数:二进制数的基数为2{0,1} 规则:逢二进一 加权表达式: 二进制数anan-1……a0b1b2……bm的值为 an2n+an-12n-1+…a020+b12-1+b22-2+…bm2-m
1.1.2 二进制数和十进制数之间的转换 二进制转换为十进制 规则:各位二进制数码乘以与其对应的权之和 1.1.2 二进制数和十进制数之间的转换 二进制转换为十进制 规则:各位二进制数码乘以与其对应的权之和 二进制数anan-1……a0b1b2……bm对应的十进制数为 an2n+an-12n-1+…a020+b12-1+b22-2+…bm2-m 十进制转换为二进制 1.降幂法 2.除法
1.1.2 二进制数和十进制数之间的转换 降幂法 转换规则:首先写出要转换的十进制数,再写出所有小于此数的各位二进制权值,然后用要转换的十进制数减去与它 最相近的二进制权值,如够减则减去并在相应位记为1,如不够减则在相应位记以0并跳过此位;如此不断反复,直到差为0为止。 例:N=117.8125D(计算过程) 小于N的二进制权:64 32 16 8 4 2 1 0.5 0.25 0.125 0.0625 对应的二进制数 :1 1 1 0 1 0 1 1 1 0 1 N=117.8125D=1110101.1101B
1.1.2 二进制数和十进制数之间的转换 降幂法计算过程 整数部分: 117-26=53 (a6=1) 53-25=21 (a5=1) 1.1.2 二进制数和十进制数之间的转换 降幂法计算过程 整数部分: 117-26=53 (a6=1) 53-25=21 (a5=1) 21-24=5 (a4=1) (a3=0) 5-22=1 (a2=1) (a1=0) 1-20=0 (a0=1) 小数部分: 0.8125-2-1=0.3125 (b1=1) 0.3125-2-2=0.0625 (b2=1) (b3=0) 0.0625-2-4=0 (b4=1)
1.1.2 二进制数和十进制数之间的转换 除法 转换规则:把要转换的十进制数的整数部分不断除以2,并记下余数,直到商为0止;对于被转换的十进制数的小数部分则应不断的乘以2,并记下其整数部分,直到结果的小数部分为0止。 例:N=117.8125D 计算过程如下: 整数部分 小数部分 117/2=58 (a0=1) 0.8125×2=1.625 (b1=1) 58/2=29 (a1=0) 0.625×2=1.25 (b2=1) 29/2=14 (a2=1) 0.25×2=0.5 (b3=0) 14/2=7 (a3=0) 0.5×2=1.0 (b4=1) 7/2=3 (a4=1) 3/2=1 (a5=1) 1/2=0 (a6=1) N=117.8125D=1110101.1101B
1.1.3 十六进制数及其与二进制、十进制数之间的转换 1.1.3 十六进制数及其与二进制、十进制数之间的转换 十六进制数的表示 十六进制与二进制之间的转换 二进制转换为十六进制,只要把二进制数从低位到高位每四位一组,直接用十六进制数来表示即可; 例:0011 0101 1011 1111B=35BFH 而十六进制转换为二进制,把十六进制数中的每一位用四位二进制数表示即可。 例:A19CH=1010 0001 1001 1100B 十六进制与十进制之间的转换(参见二进制与十进制之间的转换) 八进制与二进制之间的转换(参见十六进制与二进制之间的转换) 八进制与十进制之间的转换(参见二进制与十进制之间的转换)
1.2 二进制数和十六进制数运算 1.2.1 二进制数运算 1.加法规则 2.乘法规则 1.2.2 十六进制数运算 1.2 二进制数和十六进制数运算 1.2.1 二进制数运算 1.加法规则 2.乘法规则 1.2.2 十六进制数运算 规则:参照十进制数的运算规则,逢16进1。
1.3 计算机中数和字符的表示 1.3.1 数的补码表示 1.3.2 补码的加法和减法 1.3.3 无符号整数 1.3.4 字符表示法
1.3.1 数的补码表示 机器数与真值 原码表示法 反码表示法 补码表示法
1.3.1 数的补码表示 1.真值与机器数 计算机在处理实际问题时遇到的带符数,数据的“+”号和“-”号在计算机内也是用二进制位表示, “0”表示正, “1”表示负。 例如: N1=+1011011 N2=-1011011 机内表示:N1=01011011 N2=11011011 定义:将已经数值化了的带符号数称为机器数,而把原来的数称为机器数的真值。
1.3.1 数的补码表示 2.原码表示法 数据的最高位用来表示符号,称为符号位,符号位为0表示正数,符号位为1表示负数,其余位为数值位,用数据的绝对值表示。 举例:(1) X=+85, X原=01010101 (2) X=-85, X原=11010101 (3)对于零: 0有两种表示形式 +0原=00000000 -0原=10000000
1.3.1 数的补码表示 3.反码表示法 在反码表示中,仍用0表示正数,1表示负数。对于正数,其反码表示与其原码表示完全相同;对于负数,符号位为1,其余用数值的反码表示。 举例:(1) X=+85, X反=01010101 (2) X=-85, X反=10101010 (3)对于零: 0有两种表示形式 +0反=00000000 -0反=11111111
1.3.1 数的补码表示 4.补码表示法 在补码表示中,仍用0表示正数,1表示负数。对于正数,其补码表示与其原码表示完全相同;对于负数,符号位为1,其余各位按位取反加1。 举例:(1) X=+85, X补=01010101 (2) X=-85, X补=10101011 (3)对于零: 0只有一种表示形式 0补=00000000
1.3.2 补码的加法和减法 求补运算 [X]补 => [-X]补 => [X]补 补码的加法法则 1.3.2 补码的加法和减法 求补运算 [X]补 => [-X]补 => [X]补 补码的加法法则 [X+Y]补=[X]补+[Y]补 补码的减法法则 [X-Y]补=[X]补+[-Y]补 求补 求补
1.3.2 补码的加法和减法 两个正数相加: 45 00101101(45的补码) + 22 +00010110(22的补码) 1.3.2 补码的加法和减法 两个正数相加: 45 00101101(45的补码) + 22 +00010110(22的补码) 67 01000011(67的补码)
1.3.2 补码的加法和减法 正数加负数(负数绝对值小): 45 00101101(45的补码) 1.3.2 补码的加法和减法 正数加负数(负数绝对值小): 45 00101101(45的补码) +(-22)+11101010(-22的补码) 23 00010111(23的补码)
1.3.2 补码的加法和减法 负数加正数(负数绝对值大): (-45) 11010011(-45的补码) 1.3.2 补码的加法和减法 负数加正数(负数绝对值大): (-45) 11010011(-45的补码) +22 +00010110(22的补码) -23 11101001(-23的补码)
1.3.2 补码的加法和减法 两个负数相加: (-45) 11010011(-45的补码) (-22)+11101010(-22的补码) 1.3.2 补码的加法和减法 两个负数相加: (-45) 11010011(-45的补码) (-22)+11101010(-22的补码) (-67) 10111101(-67的补码)
1.3.2 补码的加法和减法 结论: 用补码表示的数据进行加减运算时可以不考虑符号位,直接运算,即与不带符号的数据的运算完全相同。 1.3.2 补码的加法和减法 结论: 用补码表示的数据进行加减运算时可以不考虑符号位,直接运算,即与不带符号的数据的运算完全相同。 该结论是否完全正确呢?请看下面的例子:
× 1.3.2 补码的加法和减法 两个正数相加: 126 01111110(126的补码) + 4 +00000100(4的补码) 1.3.2 补码的加法和减法 两个正数相加: 126 01111110(126的补码) + 4 +00000100(4的补码) 130 10000010(-126的补码) 为什么会出现错误的结果呢? ×
× 1.3.2 补码的加法和减法 两个正数相加: 126 01111110(126的补码) + 4 +00000100(4的补码) 1.3.2 补码的加法和减法 两个正数相加: 126 01111110(126的补码) + 4 +00000100(4的补码) 130 10000010(-126的补码) 为什么会出现错误的结果呢?溢出 ×
1.3.2 补码的加法和减法 运算结果超出了目标所能容纳的范围, 称发生了溢出。 例如:8位所能表示的补码数据的范围是: 1.3.2 补码的加法和减法 运算结果超出了目标所能容纳的范围, 称发生了溢出。 例如:8位所能表示的补码数据的范围是: -128~+127。 同号相加,异号相减时才可能发生溢出。
1.3.3 无符号整数 无符号数定义 一个数的最高有效位也作为数值处理,这样的数就称为无符号数。 用法:一般常用于表示地址
1.3.4 字符表示法 ASCII码 BCD码(8421码) Unicode码 区位码
1.4 几种基本的逻辑运算 1.4.1 与运算(AND) 1.4.2 或运算(OR) 1.4.3 异或运算(NOT) 1.4 几种基本的逻辑运算 1.4.1 与运算(AND) 1.4.2 或运算(OR) 1.4.3 异或运算(NOT) 1.4.4 非运算(XOR)