数据的表示

考点1: 进制转换

考点2: 码制(原码/反码/补码/移码)

考点3: 浮点数得表示

考点4: 逻辑运算

考点1: 进制转换

进制 数码 基数 位权
十进制(D) 0,1,2,3,4,5,6,7,8,9 10 $10^k$
二进制(B) 0,1 2 $2^k$
十六进制(H) 0~9,A,B,C,D,E,F 16 $16^k$
按权展开法

​ R进制转十进制使用按权展开法,其具体操作方法为:将R进制数得每一位数值用R^k形式表示,即幂低底数是R,指数为k,k与该位和小数点之间得距离有关。当该位位于小数点左边,k值是该位和小数点之间数码得个数,而当该位位于小数点右边,k值是负值,其绝对值是该为和小数点之间数码得个数加1。

例如二进制10100.01=1 $$ $2^4$ + 1 $$ $2^2$ + 1 $*$ $2^-2$

例如七进制604.01=6$$$7^2$+4$$$7^0$+1$*$$7^-2$

短除法
  • 十进制转R进制使用短除法(除基取余法)

例如将94转换位二进制数。

减法
  • 十进制转二进制使用减法。

例如将94转换位二进制数。

进制转换
  • 二进制转八进制与十六进制数。

考点2: 码制(源码/反码/补码/移码)

原码:最高位是符号位,其余低位表示数值得绝对值

反码:正数的反码与原码相同发,负数的反码是其绝对值按位取反(符号位不变)

补码:正数的补码与原码相同,负数的补码是其反码末位加1(符号位不变)

移码:补码的符号位按位取反

定点整数

当n=8,也就是一共8个数位时:

原码:

-($2^{n-1}$-1)~ +($2^{n-1}$ - 1)

-127 ~ +127

转为二进制

1111 1111 ~ 0111 1111

补码:

1000 0000 ~ 0111 1111

其中 -128的补码为1000 0000是人为规定

定点小数

原码:

-(1-$2^{-({n-1})}$)~ + (1-$2^{-(n-1)}$)

即: -0.1111111 ~ + 0.1111111

补码:

-1 ~ + 0.1111111

其中-1的补码为1000 0000是人为规定。

考点3:浮点数的表示

浮点的运算

浮点数表示:

N = 尾数 * $基数^{指数}$

运算过程:

对阶 > 尾数计算 > 结果格式化

特点:

1、一般尾数用补码,阶码用移码

2、阶码的位数决定数的表示范围,位数越多范围越大

3、尾数的尾数决定数的有效精度,位数越多精度越高

4、对阶时,小数向大数看齐

5、对阶是通过较小数的尾数右移实现的

考点4: 逻辑运算

关系运算符及其优先次序

优先级相同(高)

< (小于) <=(小于或等于) > (大于) >= (大于或等于) == (等于) != (不等于)

优先级相同(低)

== (等于) !=(不等于)

说明:

关系运算符的优先级低于算术运算符

关系运算符的优先级高于赋值运算符

逻辑运算

逻辑变量之间的运算称为逻辑运算。二进制数1和0在逻辑上可以代表“真”和“假”

真值表:描述一个逻辑表达式与其变量之间的关系

逻辑运算符

&& (逻辑与) 相当于其他语言中的AND

|| (逻辑或) 相当于其他语言中的OR

! (逻辑非) 相当于其他语言中的NOT

例: a&&b 若a,b为真,则a&&b为真。

​ a||b 若a,b之一为真,则a||b为真。

​ !a 若a为真,则!a为假。

优先次序:

!(非) -> &&(与) -> ||(或)

逻辑运算符中的“&&” 和 “||” 低于关系运算符, “!”高于算术运算符

因此运算符的优先顺序为:!>算术运算符>关系运算符>&&>||>赋值运算符

短路原则:

在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。

(1)a&&b&&c 只有a为真时,才需要判断b的值,只有a和b都为真时,才需要判断c的值

(2)a||b||c 只要a为真,就不必判断b和c的值,只有a为假,才判断b。a和b都为假才判断c