CPU的写代码的类型
IO型:从main函数开始写,要写输入,输出,返回。
接口型:不需要写主函数,默认主函数是存在的,你只需要完成函数就可以了。
一、隐式类型转换
C的整型算数运算总是至少以缺省整型类型的精度来进行的。
为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。
整型提升的意义:
表达式的整型运算要在CPU的相应运算器件内执行,CPU整形运算器(ALU)的操作数的字节长度一般就是int的字节长度,同时也是CPU的通用寄存器的长度。
因此,两个char类型的相加,在CPU执行时实际上也是先转换为CPU内整型操作数的标准长度。
通用CPU是难以直接实现两个8比特字节直接相加运算。所以,表达式中各种长度可能要小于int长度的整型值,都必须先转换为int或unsigned int,然后才能送入CPU去执行运算。
以char为例:(将其转化为二进制—>补码—>计算—>原码)
负数 char c1=-1;
原码:10000001(1个字节)
补码:11111110—>11111111
高位补符号位:11111111111111111111111111111111(4个字节)
正数:char c2=1;
原码,补码:00000001;
高位补0: 00000000000000000000000000000001
实例计算:char a=3; char b=127;Int c=a+b;
对于a:00000011 对于b:01111111
补0
相加—> 00000000000000000000000010000010
原码: 11111111111111111111111110000001
---à 10000000000000000000000001111110==-126
因此对于有符号char类型来说,它值从0-256对应整型0 1 2 3 ~ 127 -128 -127~~-1.
二、算数转换
如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数的转换为另一个操作数的类 型,否则操作就无法进行。下面的层次体系称为寻常算术转换。
long double
double
float
unsigned long int
long int
unsigned int
int 优先级从下往上一次提升。方法,类似charàint。