数据类型
1、c语言数据类型
- 数据类型
-
整形
(signed) char/ unsigned char —>字符型 char 占 1byte(字节) = 8 bits
(signed) short/ unsigned short —>短整型 short 占 2byte(字节) = 16 bits
(signed) int/ unsigned int —>整型 int 占 4byte(字节) = 32 bits
(signed) long/ unsigned long —>长整型 在32位机器值 long 占 4byte(字节) = 32 bits 在64位机器值 long 占 8byte(字节) = 64 bits
-
浮点型
单精度 float 4byte 双精度 double 8byte 长精度 long double 12byte
2、常量与变量
2.1 常量
-
整型常量 二进制(8421) 八进制(以0开头的都是八进制) 136 ----> 001 011 110 16进制(以0x/0X开头的) 10进制(没有特殊说明都是10进制) -
浮点型常量 带小数的 1.2 1.2e-3 ---->0.0012 -
字符型常量 保存的不是形状,是ASCII码. 字符<------>整数 -
枚举常量
2.2 变量
- 2.2.1.变量的定义
变量类型 变量名; 变量的属性(占用多大的空间,取值范围---->类型)
2.2.2.signed/unsigned
signed:最高位是符号位,其他都是数值位 unsigned:都是数值位
2.2.3.变量的保存
存储的是二进制补码 原码<----->补码 正数:原码本身 负数:原码的绝对值,取反+1(二进制)
3、整形数据的存储
- 整形的存储方法
- 正数
正数的补码就是本身的二进制 补码=原码 - 负数
原码变补码 符号位不变,数据位取反 原码的绝对值 取反 加一 比如: -13 绝对值:13 0000 1101 取反:1111 0011 加一:1111 0100 在计算机中存储的就是 1111 0100 补码变原码 short a = 32767; short b = a+2; printf("%d\n",b); 0111 1111 1111 1111 + 0000 0000 0000 0010 = 1000 0000 0000 0001 存储码 补码转原码:符号位不变,数据位取反 补码减一 取反 1111 1111 1111 1111 = -32767 总结:在进行运算的时候,都是补码在进行运算,正数的补码等于原码,故不必再进行转码;当补码为负数或数据溢出时,需将补码转化为原码。
|