19.04.07笔记-进制转换 汇编代码及数据范围
作业:
1.八进制以0开头,十六进制以0x或0X开头
2.标识符只能由字母和数字以及下划线组成
3.二进制、八进制、十六进制
4.主要用于计算数据存储空间,单位字节数
5.八进制:07253
二进制:111 110 011 010 001
6.十六进制:0XFADB
二进制:1010 0110 1011 0010 1111 0001
7.short a=-8;//a的原码 反码 补码
原码:1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1000
反码:1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 0111
补码:1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1000
8.(1)-2(2)65534(3)-32767(4)4
gcc -o 文件名 文件名.c
格式:
-o file 指定生成的输出文件名为file
-E 只进行预处理
-S(大写) 只进行预处理和编译
-c(小写) 只进行预处理、编译和汇编
1)预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法
2)编译:检查语法,将预处理后文件编译生成汇编文件
3)汇编:将汇编文件生成目标文件(二进制文件)
4)链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去
预处理:gcc -E hello.c -o hello.i
编 译:gcc -S hello.i -o hello.s
汇 编:gcc -c hello.s -o hello.o
链 接:gcc hello.o -o hello_elf
system("可执行程序名字")
除二取余逆序法:
十进制转二进制
十进制转八进制(除八)
十进制转十六进制(除十六)
权值法:
二进制转十进制010111101==>0*2^8+1*2^7+0*2^6+1*2^5+1*2^4+1*2^3+1*2^2+0*2^1+1*2^0=>
八进制转十进制
十六进制转十进制
八四二一法则:
八进制、十六进制和二进制的转化
short -32768 到 32767 (-215 ~ 215-1)
int -2147483648 到 2147483647 (-231 ~ 231-1)
long -2147483648 到 2147483647 (-231 ~ 231-1)
unsigned short 0 到 65535 (0 ~ 216-1)
unsigned int 0 到 4294967295 (0 ~ 232-1)
unsigned long 0 到 4294967295 (0 ~ 232-1)