有符号和无符号的区别 数据类型范围(解释-128是怎么来的) sizeof()关键字
有符号和无符号的区别
1)有符号,最高位是符号位,如果是1代表是负数,如果为0代表为正数
2)无符号,最高位不是符号位,是数的一部分,无符号不可能是负数
#include <stdio.h>
int main()
{
unsigned int c = 0x8000007b;
printf("c = %d\n",c);//输出结果以%d为准,%d以有符号方式输出
printf("c = %u\n",c);//输出结果以%u为准,%d以有符号方式输出
return 0;
}
数据类型范围
char 1个字节 (8位)
有符号的范围:
正数:
0000 0000 ~ 0111 1111
0 127
负数:
1000 0000 ~ 1111 1111
-0 -127
解释-128是怎么来的:
-0 当做 -128使用
-128:
原码: 1 1000 0000
反码: 1 0111 1111
补码: 1 1000 0000
这里你会发现-128的原码和补码是一样的,同时也是-0是一样的。那么我们就把-0,当做是-128。作为它的临界值
无符号范围:
0000 0000 ~ 1111 1111
0 ~ 255
char:
有符号: -128 ~ 127
无符号: 0 ~ 255
sizeof()关键字
sizeof( );测字节长度
那么综上所述,数据类型的作用是什么呢?
数据类型的作用:告诉编译器,定义此类型变量需要分配多大空间