1.类型的基本归类
整形家族:
数值:
正数和负数
有些数值,只有正数,没有负数(身高)unsigned
有些数值,有正数也有负数(温度) signed
其中char中的unsigned char和signed char中unsigned和signed取决于编辑器
而其他整形:short=signed short int=signed int long=signed long
空类型:void表示空类型(无类型)
int a=10;
void*p1=&a;
//void*p1就像个垃圾桶,什么都可以放进去,但是使用会出现问题。
2.原码、补码、反码
原码到补码————1种方式
原码取反,+1得到补码
-1
10000000000000000000000000000001 原码
1111111111111111111111111111111111110反码
1111111111111111111111111111111111111补码
补码到原码—————2种方式
1.补码-1,取反得原码
2.补码取反,+1得到原码
但是通过编辑器内存我们看到的不是2进制,而是16进制,较为简洁易懂。
3.大小端介绍
举例:0x11223344 其中44 33 22 11依次由低位到高位
大端内存:低位——11——22———33——44———高位
小端内存:低位——44——33———22——11———高位
经典例题:请简述大端字节序和小端字节序的概念,设计一个小程序来判断当前机器的字节序。
#include <stdio.h>
int check_sys()
{
int i = 1;
return (*(char*)&i);
}
int main()
{
int ret = check_sys();
if (ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
欢迎大家指正,小白学习中!!!