2.1 bit和数据类型
bit是信息的基本单位
对于计算机来说,一切由自然语言描述的问题最终被转化为计算机内部的电路工作(可以说是电子的运动造成电路的变化)
解释:计算机内部有百万计的器件控制电子的运动,同时也在检测着电路电压的变化=>通过检测电压的有无=>把电路分为两种状态“有”“无”即分别对应1和0
但为了表示更多的状态,我们会将多条线路合并起来用
eg 8条线路==8bit==256种状态(00000000~11111111)
k个bit组合可以表示2^k种状态
数据类型
导入:十进制,单进制(一根手指代表一个 11111),罗马表示法
计算机的数据表达法:二进制表示法
不能只表示数据,更要操作数据,所以新的概念
数据类型
应运而生
概念:定义了数据的表达方式(编码方式),同时还定义了相关的操作方法的一种表达方式
每个计算机指令集(ISA)都定义了一组数据结构及其相应的操作指令,数据类型的数目可多可少取决于ISA的设计要求。
2.2整数数据类型
无符号整数unsigned integer
简单使用二进制表示法来将一个无符号整数表示为一串二进制数字序列string of binary notation
位值法positional notation ( 屁股决定权力)
eg (5bits) 6==00110 8==01000
k个bit可以表示2^k个无符号整数(0~2^k-1)
eg 5bit -> 0~31
有符号整数
1.符号位表示(原码)Signed Magnitude
2.反码 1'sComplement
3.补码 2's Complement
2.3补码
补码的计算方法
01001(9)=>10110(1'scomp)=>(+1) 10111
eg
练习题
2.4二进制与十进制数之间的转换
二进制数转化为十进制数
先确定表示方法:原码、反码、补码
检查符号位0/1
若是补码的话,建议把负值补码转换为其相应的绝对值再添加负号
十进制数转化为二进制数
转换的思路很像泰勒展开式的思路
2.5bit运算之一:算术运算
加法与减法
1.加法
计算11+3
11==01011 3==00011 11+3==01011+00011=>01110 (14)
01011
00011
01110 ==14
2.减法
a-b==a+(-b)
计算14-9
14==01110 9==01001 =>-9==10111 =>14-9==01110+10111 =>00101(5)
01110
10111
00101
3.一个数与它自己相加结果相当于自己左移一位
eg 59==00111011 59+59==01110110
符号拓展
操作一:正数前面任意添加0不会改变其值
操作二:负数前面任意添加1不会改变其值
溢出
定义:运算结构超出码字的最大值或最小值
测试方法:正数前面加0,负数前面加1;运算后俩符号不一致,则溢出
特:一个正数加一个负数永远不会溢出
2.6bit运算之二:逻辑运算
逻辑运算Logical Operation
逻辑操作的功能定义常用描述方式是真值表true table
真值表的行数为2^n,列数为n+1,
前n列代表n个源操作数,每个源操作数都为逻辑变量,故只有0/1所以n个操作数的可能组合为2^n
与运算
AND 二元逻辑运算(=两个源操作数)
按位AND操作
与运算的一种用途:屏蔽字位
或运算
非运算
异或运算
理解:判断操作数一不一致,一致为0,不一致为1