CSAPP
chapter 2
整型数值表示
将负数$-x$表示为二进制的方式为: 首先用二进制表示出$+x$, 按位取反后加1即可.
反过来, 依据二进制计算其表示的数字的方法为: 首先依据最高位判断符号, 若最高位为$0$, 则直接利用二进制转十进制确定; 若最高位为$1$, 则确定符号为负, 其绝对值由减一后按位取反, 再用二进制转十进制确定.
练习
假定INT类型为1字节有符号整数, 则数值表示范围为$[-2^7,2^7-1]=[-128,127]$.
+10 = 00001010 => 11110101 => -10 = 11110110 => 256 + (-10) = 246 = 11110110
11110110 => - ~(11110101)=>- 00001010 => -10
浮点型数值表示
chapter 3
//mstore.c
long mult2(long, long);
void multstore(long x, long y, long *dest) {
long t = mult2(x, y);
*dest = t;
}显示.o文件里的部分机器码:
显示.s文件里的内容:
反汇编mstore.o:
Last updated
Was this helpful?