一、进位计数制
1.各种信息进入计算机,都要转换成‘0’‘1’的二进制形式。
计算机采用二进制的原因:
①物理上容易实现,可靠性高。
②运算简单,通用性强。
③便于表示和进行逻辑运算。
2.进位计数制的特点:
①采用进位的方式进行计数(逢2进1、逢10进1).
②使用位置表示法。
例:十进制表示
3.计算机中常用的数字系统
4.进制之间相互转换
例1:将十进制转换为二进制(整数部分:除留余后逆取,小数部分:反复乘r取整,乘至满足精度要求为止,正序取整)
例2:十进制转化成二进制后两数相减
例3:二进制转化成十进制(小数点前一位为0次幂)
例4:二进制转化为十六进制(先划分,后按划分位转化)
注:16对应二进制4位数(1111),所以,以小数点为中心,每四个数划为一组。不够的地方补0。
例5:二进制转化位八进制(类比十六进制)
注:8对应二进制三位数(111),所以,以小数点为中心,每三个数划为一组。不够的地方补0。
例6:十六进制转化成八进制(借助二进制转化)
二、 数值数据在计算机中的表示
(1)整数在计算机中的表示
由于计算机只有‘0’‘1’的数据形式,因此正(+)、负(-)号也要用‘0’‘1’编码。通常将一个数的最高二进制位定义为符号位,称为“数符”,用‘0’表示正数,‘1’表示负数,其余位表示数值。
(2)原码
负数最高位为1,正数最高位为0。
例如: +7 和 -7的原码
问题:-1+1=?(二进制表示)
通过源码计算结果为 -2,这样的结果显然是不真确的,错误原因在于最高位的符号位。
因此我们引入反码的概念。
(3)反码
正数不变,与源码相同;负数除符号位外所有位按位取反。
例如: +7 和 -7 的反码
同样的问题:-1+1=?(二进制表示)
转化为反码后将其转化为原码,我们发现 10000000 结果为 -0。这样就出现了+0和-0之分的缺陷。因此我们引入补码的概念。
(4)补码
正数的补码不变,与源码/反码相同;负数的补码为将反码加1。
例如: +7 和 -7 的补码
注:一个整数在计算机内都是按照补码存放的。
引入补码后问题得到解决,-1+1=0
练习例题:
2-1:-9+9
2-2:65+66
此时我们发现65+66=131,而计算的结果却是-125,这是因为计算时我们假设的位数为8位(其中最高位表正负,剩余7位)而7位二进制中最高表示127(1111111),而 65+66>127导致了数据的溢出。(有限的存储空间保存的数据大小也是有限的)
三、浮点数在计算机中的表示
数学中的实数在计算机中称为浮点数,是指小数点不固定的数。浮点数在计算机中的表示方法比整数复杂得多。
注:e=E+127
例:求单精度的数据50.0在计算机中的表示
四、西文字符
西文字符包含英文字符、数字、各种符号。
(1)常用的西文字符集
最常用的西文字符集是美国信息交换标准代码ASCII,ASCII码采用7位二进制编码,码值从0到127,表示128个字符。