目录
1、 进制转换
1.1、基础转换
1.2、二进制与八进制与十六进制
1.2.1、二进制与八进制
1.2.2、二进制与十六进制
2、码制
2.1、原码/反码/补码/移码
2.2、数值范围
3、浮点数
3.1、浮点数的表示
3.2、特点
3.3、对阶
4、运算
4.1、关系运算符
4.2、逻辑运算符
4.2.1、计算介绍
4.2.2、短路原则
1、 进制转换
1.1、基础转换
数据的计算分为2进制,10进制和16进制。
表格中的符号表示当前的数值的进制。
表格中的数码表示当前进制所能具有的符号,其中16进制最特殊,A代表10,B代表11,C代表12,D代表13,E代表14,F代表15.
表格中的基数表示计算时的进位标准。
表格中的位权表示计算时每一位的权重,即
10010101(B) = +++ = 149(D)
需要注意的是,位是从右开始向左计算,且起始为0。
若是小数点后,则是从左向右计算,且起始为-1。
进制 | 数码 | 基数 | 位权 | 符号 |
10进制 | 0~9 | 10 | D | |
2进制 | 0,1 | 2 | B | |
16进制 | 0~9,A,B,C,D,E,F | 16 | H |
若是从10进制向其他进制转换,则需要进行除基取余法,即用10进制数值除以其他进制的基数,记录余数,然后继续用得到的结果重复此过程,直至结果为0,然后逆序取得余数,即为结果
149(D)转化为二进制是多少?
149 ÷ 2 = 74 余 1
74 ÷ 2 = 37 余 0
37 ÷ 2 = 18 余 1
18 ÷ 2 = 9 余 0
9 ÷ 2 = 4 余 1
4 ÷ 2 = 2 余 0
2 ÷ 2 = 1 余 0
1 ÷ 2 = 0 余 1
从下至上,依次取得余数,结果即为10010101(B)
1.2、二进制与八进制与十六进制
1.2.1、二进制与八进制
二进制与八进制之间的关系很特殊,二进制的第三位,即恰好为8,即可以看做,每三个二进制位,都可以直接转化为一个八进制位(其符号为O)。
于是,将一个二级制数每三位做一个分割,如果最高位不足三个,则可以直接补0,因为高位的0不影响二进制数的数值本身,这样,我们可以直接得到对应的八进制数。
10010101(B)=10,010,101=010,010,101=225(O)
1.2.2、二进制与十六进制
与上一个小节的内容相似,二进制的第四位,即恰好为16,即可以看做,每四个二进制位,都可以直接转化为一个十六进制位。
于是,将一个二级制数每四位做一个分割,如果最高位不足四个,则可以直接补0,因为高位的0不影响二进制数的数值本身,这样,我们可以直接得到对应的十六进制数。
10010101(B)=1001,0101=95(H)
2、码制
2.1、原码/反码/补码/移码
- 原码:原码即为有符号二级制数的最初始数值,最高位可以用来表示有无符号,即是正数还是负数,通常来说,正数为0,负数为1
- 反码:正数的反码与原码相同,负数的反码是原码绝对值的按位取反(符号位不变)
- 补码:正数的补码与原码相同,负数的补码是反码加1(补码是有符号二进制数计算的正确方式,即做二进制加减法时,按照补码进行计算)
- 移码:补码的符号位按位取反(只需了解其概念本身,是浮点数计算方式,其余不做了解即可)
1的表示方式 | -1的表示方式 | 1-1的表示方式 | |
原码 | 00000001 | 10000001 | 10000010 |
反码 | 00000001 | 11111110 | 11111111 |
补码 | 00000001 | 11111111 | 00000000 |
移码 | 10000001 | 01111111 | 10000000 |
2.2、数值范围
- 原码的定点整数:当n为8时,范围为-127~127,即11111111~01111111,因为有+0,和-0,所以负数范围和正数范围一致
- 原码的定点小数:当n为8时,范围为-0.1111111~0.1111111
- 补码的定点整数:当n为8时,范围为-128~127,其中-128的补码10000000是人为规定的,所以范围为10000000~01111111,-0被当成-128
- 补码的定点小数:当n为8时,范围为-1~0.1111111,其中-1的补码10000000是人为规定的
码制 | 定点整数 | 定点小数 | 数码个数 |
原码 | |||
反码 | |||
补码 | |||
移码 |
3、浮点数
3.1、浮点数的表示
浮点数,即小数点可以浮动的数,通常使的方式来表示
A为尾数,以定点小数表示
B为基数
C为指数,以定点整数表示,又称阶码
3.2、特点
- 一般尾数用补码,阶码用移码(在IEEE754标准中,尾数可以用原码)
- 阶码的位数决定数的表示范围,位数越多范围越大
- 尾数的位数决定数的精度范围,位数越多精度越高
- 数符:尾数的符号位
- 阶符:阶码的符号位
3.3、对阶
对阶,即为两个浮点数的计算,通常而言,浮点数的阶码并不一致,如要计算,需要对其,即为对阶。对阶时,小的阶码要向大的转换,这样才能维持尾数的定点小数状态。
- 对阶时,小数向大数看齐
- 对阶通过较小数的尾数右移实现的
比如与计算,需要将转化为,然后与计算得到
4、运算
4.1、关系运算符
- 关系运算符优先级低于算术运算符
- 赋值运算符优先级低于关系运算符
< | 小于 | 优先级高 |
<= | 小于等于 | |
> | 大于 | |
>= | 大于等于 | |
== | 等 | 优先级低 |
!= | 不等 |
4.2、逻辑运算符
4.2.1、计算介绍
逻辑变量之间的运算即为逻辑运算,二进制的1代表真,0代表假
- 优先级排序为:非(!),与(&&),或(||)
- 逻辑运算符中的与(&&),或(||)低于关系运算符
- 最终的优先级为:非(!),算数运算符,关系运算符,与(&&),或(||),赋值运算符
与 | ||,+ | 两个逻辑值全为1时为1 |
或 | &&, | 两个逻辑值全为0时为0 |
异或 | 两个逻辑值不相同时为1,否则为0 | |
非 | ! | 与原逻辑相反 |
真值表
A | B | !A | A+B | AB | AB |
0 | 0 | 1 | 0 | 0 | 0 |
0 | 1 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 1 | 1 | 0 |
4.2.2、短路原则
在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行
- a&&b&&c,如果a为真,才要判断b,如果b为真,才要判断c
- a||b||c,只要a为真,b,c都不需要计算,a为假,b才需要计算,ab都为假,c才需要计算。