Lesson 001 —— 数据
数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。数据是信息的表现形式和载体,可以使符号、文字、数字、语音、图像、视频等。
进制
进制也就是进位制,是人们规定的一种进位方式。
十进制
数码:指集合论中刻画任意集合所含元素数量多少的一个概念。
十进制的基本符号是:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
,我们把这些称之为十进制的数码,也就是基本符号,所有的十进制数都是由这十个数码组成。每位在加时都是“逢十进一”。位权:数制中每一固定位置对应的单位值称为位权。
我们可以从 0 开始,对数字的各个数位进行编号,即个位起,从右向左依次编号为
0, 1, 2, ...
;对称的,从小数点后的数位则为-1, -2, ...
;而 n 位所代表的权的大小为10n-1
二进制
在计算机系统中采用的进位计数制。在二进制中,数用0和1两个符号来描述。计数规则是逢二进一,借一当二。
数制符号
二进制 B (binary)
八进制 O (octal)
十进制 D (decimal)
十六进制 H (hexadecimal)
进制转换
其它进制转十进制
将其它进制按权位展开,然后各项相加,就得到相应的十进制数。
例1: N=(10110.101)B=(?)D 按权展开N=1*2^4+0*2^3+1*2^2+1*2^1+0*2^0+1*2^-1+0*2^-2+1*2^-3 =16+4+2+0.5+0.125 =(22.625)D
将十进制转换为其它进制
分两部分进行的即整数部分和小数部分。
整数部分:(基数除法)
把我们要转换的数除以新的进制的基数,把余数作为新进制的最低位;
把上一次得的商在除以新的进制基数,把余数作为新进制的次低位;
继续上一步,直到最后的商为零,这时的余数就是新进制的最高位.
小数部分: (基数乘法)
把要转换数的小数部分乘以新进制的基数,把得到的整数部分作为新进制小数部分的最高位
把上一步得的小数部分再乘以新进制的基数,把整数部分作为新进制小数部分的次高位;
继续上一步,直到小数部分变成零为止。或者达到预定的要求也可以。
二进制与八进制、十六进制的相互转换
二进制转换为八进制、十六进制:它们之间满足23和24的关系,因此把要转换的二进制从低位到高位每3位或4位一组,高位不足时在有效位前面添“0”,然后把每组二进制数转换成八进制或十六进制即可。
八进制、十六进制转换为二进制时,把上面的过程逆过来即可。
二进制运算
算数运算
二进制的算数运算包括:加、减、乘、除四则运算。
二进制的加法
根据“逢二进一”规则,二进制数加法的法则为:
0+0=0 0+1=1+0=1 1+1=0 (进位为1) 1+1+1=1 (进位为1)
二进制的减法
根据“借一有二”的规则,二进制数减法的法则为:
0-0=0 1-1=0 1-0=1 0-1=1 (借位为1)
二进制的乘法
二进制数乘法过程可仿照十进制数乘法进行。但由于二进制数只有0或1两种可能的乘数位,导致二进制乘法更为简单。二进制数乘法的法则为:
0×0=0 0×1=1×0=0 1×1=1
二进制的除法
二进制数除法与十进制数除法很类似。可先从被除数的最高位开始,将被除数(或中间余数)与除数相比较,若被除数(或中间余数)大于除数,则用被除数(或中间余数)减去除数,商为1,并得相减之后的中间余数,否则商为0。再将被除数的下一位移下补充到中间余数的末位,重复以上过程,就可得到所要求的各位商数和最终的余数。
说明:乘除法分原码乘法和补码乘法。
逻辑运算
二进制数的逻辑运算包括逻辑加法(“或”运算)、逻辑乘法(“与”运算)、逻辑否定(“非”运算)和逻辑“异或”运算。
逻辑“或”运算
又称为逻辑加,可用符号“+”或“∨”来表示。逻辑“或”运算的规则如下:
0+0=0 或 0∨0=0 0+1=1 或 0∨1=1 1+0=1 或 1∨0=1 1+1=1 或 1∨1=1
可见,两个相“或”的逻辑变量中,只要有一个为1,“或”运算的结果就为1。仅当两个变量都为0时,或运算的结果才为0。计算时,要特别注意和算术运算的加法加以区别。
逻辑“与”运算
又称为逻辑乘,常用符号“×”或“· ”或“∧”表示。“与”运算遵循如下运算规则:
0×1=0 或 0·1=0 或 0∧1=0 1×0=0 或 1·0=0 或 1∧0=0 1×1=1 或 1·1=1 或 1∧1=1
见,两个相“与”的逻辑变量中,只要有一个为0,“与”运算的结果就为0。仅当两个变量都为1时,“与”运算的结果才为1。
逻辑“非”运算
又称为逻辑否定,实际上就是将原逻辑变量的状态求反,在变量的上方加一横线表示“非”。逻辑变量为0时,“非”运算的结果为1。逻辑变量为1时,“非”运算的结果为0。
逻辑“异或”运算
“异或”运算,常用符号“”或“”来表示,其运算规则为:
00=0 或 00=0 01=1 或 01=1 10=1 或 10=1 11=0 或 11=0
可见:两个相“异或”的逻辑运算变量取值相同时,“异或”的结果为0。取值相异时,“异或”的结果为1。
机器数与真值
- 机器数:一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机中用一个数的最高位存放符号,正数为 0, 负数为 1 。
- 真值:将带符号的机器数对应的真正数值称为机器数的真值。
原码、反码、补码
为了将符号位参与运算,并且只保留加法,从而简化计算机运算,发明了原码、反码和补码。它们都是用有符号的二进制数表示的方法,均由符号位和数值位构成。
原码:原码是符号位加上真值的绝对值,即用第一位表示符号,其余为表示值。
[+1]原 = 0000 0001 [-1]原 = 1000 0001
反码:正数的反码是其本身;负数的反码是其在原码的基础上,符号位不变,其余各个位取反。
[+1] = [0000 0001]原 = [0000 0001]反 [-1] = [1000 0001]原 = [1111 1110]反
补码:正数的补码是在其本身;负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后 +1(即在反码的基础上 +1)。
[+1] = [0000 0001]原 = [0000 0001]反 = [0000 0001]补 [-1] = [1000 0001]原 = [1111 1110]反 = [1111 1111]补 [+0] = [0000 0000]原 = [0000 0000]反 = [0000 0000]补 [-0] = [1000 0000]原 = [1111 1111]反 = [0000 0000]补
在计算系统中,数值一律用补码来表示(存储)。主要原因:使用补码,可以将符号位和其余各位统一处理;同时,减法也可以按照加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃;补码与原码的转换过程几乎是相同的。