| 数据类型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
 总结:在进行运算的时候,都是补码在进行运算,正数的补码等于原码,故不必再进行转码;当补码为负数或数据溢出时,需将补码转化为原码。
 |