数制 (1) 基数:在一种数制中,只能使用一组固定的数字符号 来表示数目的大小,其使用数字符号的个数,就称为该数 制的基数。其规则是 “ 逢 b 进一 ” ,则称为 b 进制的基数。 十进制( Decimal )的基数是 10 ,,它有 10 个数字符号, 即 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 二进制( Binary )的基数是 2 ,它有两个数字符号 0 和 1 。 八进制( Octonary )的基数是 8 ,它有 10 个数字符号,即 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 。 十六进制( Hexadecimal )的基数是 16 ,,它有 16 个数字 符号,即 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9A , B , C , D , E , F 。
数制 (2) 位权 在进位计数制中,把基数的若干次幂称为 “ 位权 ” ,幂的 方次随该位数字所在的位置而变化,整数部分从最低位 开始依次为 0, 1, 2, 3, 4... ;小数部分从最高位开始依次为 -1,-2,-3... 。 如: 十进制数 1357 它可以展开为: 1×10 3 + 3×10 2 + 5×10 1 + 7×10 0 其中每一位乘的值: 10 3 、 10 2 、 10 1 、 10 0 为该位的 权,其中的 10 是十进制的基数
2 、数制间的转换 ( 1 )非十进制数转换成十进制数 方法是:把各个非十进制数按位权展开求和即可。 ①二进制数转化成十进制 ②八进制数转化为十进制数 ③十六进制数转化为十进制数
2 、数制间的转换 ( 2 )十进制数转化为其它进制数 ①十进制数转化成二进制数: 顺序规则可概括为 “ 先余为低,后余为高,即最后的 余数为高位,依次向低位。 ” 当把十进制数转化成二进制数时,应采用 “ 除二取余 ” ,一 直除到商为 0 结束
【例 1 】将十进制整数( 105 ) 10 转换为二进制整数,采 用 “ 除 2 倒取余 ” 的方法,过程如下: 2 ︳ ︳ 52 余数为 1 2 ︳ 26 余数为 0 2 ︳ 13 余数为 0 2 ︳ 6 余数为 1 2 ︳ 3 余数为 0 2 ︳ 1 余数为 1 0 余数为 1 所以,( 105 ) 10 =( ) 2
2 、数制间的转换 ②十进制数转换成八进制数、十六进制 分别是 “ 除八取余 ” 和 “ 除十六取余 ” 法进行转换 例如: 1 ,将十进制数 94 转换成八进制数 余数 低位 结果为:( 94 ) 10 =( 136 ) 8 0
2 、数制间的转换 十进制数 转换成十六进制数 余数 结果为:( ) 10 =( E48A ) 16 高位 低位 0 10
2 、数制间的转换 ( 3 )二进制转换成八进制数十六进制数: 方法:根据它们在数位上的对应关系,将二进制数分 别转换成八进制。每三位一组构成一位八进制数。从 最右边开始,每三位二进制一组,当最后一组不够三 位时,应在左侧添加 “ 0 ” ,凑足三位。 如:将二进制数 转换成为八进制 数 结果为:( ) 2 =( ) 8 ①二进制转换成八进制数
2 、数制间的转换 ②二进制转换成十六进制数: 方法:根据它们在数位上的对应关系,将二进制数分别 转换成十六进制,每四位一组构成一位十六进制数。从 最右边开始,每四位二进制一组,当最后一位不够四位 时,应在左侧添加 “ 0 ” ,凑足四位。 例如:将二进制数 转换为十六进制 结果为 ;( ) 2 =(AC37) 16
1.3.2 字符及字符编码 字符 : 是指英文字母和各种符号,包括数字符号、运算符 号、标点和分隔符号、各种特殊符号如: # ¥ % — 等等 。 另外,还包括各种操作控制符号和一些用于通迅控制、 数据处理及报文传输的符号。 所谓字符编码 : 就是规定如何用二进制数来表示字符 目前在小型机和微型机上国际上最广泛使用的字符编码 是: “ 美国信息交换标准码 ” ( American Standard Code for Information Interchange) 简称 ASCII 码。
标准的 ASCII 码 标准的 ASCII 码采用七位二进制编码,可以表示 128 个字 符 ( 其中包括 32 通用控制字符, 10 个十进制数码, 52 个 英文大小写字母和 34 个专用符号 ) ,每个字符对应一个 七位的二进制数,这个二进制数的值称为 ASCII 码值。 在计算机中信息处理的基本单位是字节,而 ASCII 码只 占用了一个字节八位中的七位,规定其最高位为 0 。
原码 正数的符号位为 0 ,负数的符号位为 1 ,其它位按照一 般的方法来表示数的绝对值。用这样的表示方法得到的就 是数的原码。 【例 4 】当机器字长为 8 位二进制数时: X =+ [X] 原码 = [ + 1] 原码 = [ - 1] 原码 = [ + 127] 原码 = [ - 127] 原码 = 原码表示的整数范围是: -( 2 n-1 - 1 ) ~ +( 2 n-1 - 1 ),其中 n 为机器字长。 则: 8 位二进制原码表示的整数范围是- 127~ + 位二进制原码表示的整数范围是- 32767~ + 32767
反码 对于一个带符号的数来说,正数的反码与其原码相 同,负数的反码为其原码除符号位以外的各位按位取反。 【例 5 】当机器字长为 8 位二进制数时: X =+ [X] 原码 = [X] 反码 = Y =- [Y] 原码 = [Y] 反码 = [ + 1] 反码 = [ - 1] 反码 = [ + 127] 反码 = [ - 127] 反码 = 负数的反码与负数的原码有很大的区别,反码通常 用作求补码过程中的中间形式。 反码表示的整数范围与原码相同。
补码 正数的补码与其原码相同,负数的补码为其反码在最低位 加 1 。 【例 6 】( 1 ) X =+ ( 2 ) Y =- ( 1 ) [X] 原码 = [X] 补码 = ( 2 ) [Y] 原码 = [Y] 反码 = [Y] 补码 = 补码表示的整数范围是- 2 n-1 ~ + (2 n-1 -1) ,其中 n 为机 器字长。 则: 16 位二进制补码表示的整数范围是- 32768~ + 当运算结果超出这个范围时,就不能正确表示数了,此 时称为溢出。