一、简述gcc的分布编译过程
gcc编译分为4个步骤分别是:预处理、编译、汇编、链接
预处理:展开头文件,删除注释,宏定义替换。代码:
gcc -E xxx.c -o xxx.i
编译:查错,若无错误将xxx.i文件转换为汇编文件。代码:
gcc -S xxx.i -o xxx.s
汇编:将汇编文件转换为二进制文件。代码:
gcc -c xxx.s -o xxx.o
链接:将二进制文件链接成可执行文件。代码:
gcc xxx.o -o xxx.out
至此编译完成
二、请计算3-1的运算过程
计算机没有减法,只有加法,需要经过源码、反码、补码转换计算,再将结果转换回人能识别的数字。
源码:最高位为符号位,其余为表示值
反码:最高位不变,其他位取反(正数反码是其本身)
补码:在反码的基础上,符号位不变,其他位加1(正数补码也是其本身)
3的源码、反码、补码分别如下
源码:0000 0011
反码:0000 0011
补码:0000 0011
-1的源码、反码、补码分别如下
源码:1000 0001
反码:1111 1110
补码:1111 1111
将 0000 0011 与 1111 1111相加得到 0000 0010,符号位为0,即为正数,所以最终答案为2