嵌入式解谜日志之C语言—数据类型1

     linux系统的开发主要是使用C语言,因为C语言具有直接操作硬件,高效且可移植,适合底层开发的优点。

    C语言中的数据有两种存在形式:

① 变量 :  在程序运行过程中,其值能被改变的量称为变量(定义变量:数据类型 变量名)
② 常量 : 在程序运行过程中,其值不能被改变的量称为常量

变量名命名规则 
            名字 (标识符)
            1.数字、字母、下划线 
            2.不能以数字开头 
            3.区分大小写 
            4.不要和系统中二级关键字重名 (include define)
            5.不能和C语言中的关键字重名 (32个关键字)
            6.不要和系统中库函数 重名 

     C语言数据类型的分类:嵌入式解谜日志之C语言—数据类型1_第1张图片

1.整型:

整型的常量形式分为:二进制(B),八进制(O),十进制(D),十六进制(H)

二进制:0,1

八进制:0,1,2,3,4,5,6,7

十进制:0,1,2,3,4,5,6,7,8,9

十六进制:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f

计算机能识别的进制为二进制。

(1)进制之间的转换:

①十进制→二/八/十六进制:除n取余法

②二/八/十六进制→十进制:加权求和法

③八进制→二进制:以为八进制对应三位二进制

④十六进制→二进制:以为十六进制对应四位二进制

(2)整数的数据类型:int,short,long,long long

1.如果未对变量定义,则在数值大小允许的情况下,默认数据类型为int型

2.unsigned 数据类型:表示为无符号的整型,只有数值位。(只表示非负数值)

3.signed 数据类型:表示有符号的整型,最高位为符号位,“1”表示为负数,“0”表示为正数。

4.指定数据类型:整数+L  为long型

                            整数+LL  为longlong类型

int

①大小:4个字节(32位)

②取值范围:unsigned int 时:0~2^32-1

                      signed int 时:-2^31~2^31-1

short

①大小:2个字节(16位)

②取值范围:unsigned short 时:0~2^16-1

                      signed short 时:-2^15~2^15-1

long/long long

①大小:8个字节(64位)

②取值范围:unsigned long/long long 时:0~2^64-1

                      signed long/long long 时:-2^63~2^63-1

整数溢出:当整数为最大值时,如果加一则会归零

原码,反码,补码

整数 
         都是按照补码的形式存储
         
        正的整数:
          原码 反码 补码 都是一样的 
        
        原码 --- 就是直接用二进制形式表示原有的数值 
        123 
         0000 0000 0000 0000 0000 0000 0111 1011 (原码值)
          0     0    0    0    0    0    7   B
        负的整数
          补码 = 反码 + 1
        -123 
        原码:
          1|000 0000 0000 0000 0000 0000 0111 1011
        反码(原码符号位不变,其余位按位取反):
          1|111 1111 1111 1111 1111 1111 1000 0100 
        补码(反码+1):
          1|111 1111 1111 1111 1111 1111 1000 0101
            f     f    f    f    f    f   8     5

(3)浮点数的数据类型:float,double

1.代码中的浮点常数默认为double型

2.float型和double型的精度不同(在计算机中存储时的位数不同),导致实际的数据大小不同

3.指定小数常量类型:小数+f   为float型

float:单精度      4个字节(32位)
double:双精度       8个字节(64位)
浮点数计算机存储:(转换为二进制形式)

eg:12.125

①整数位:除2取余(从下往上)1100

小数位:乘2取整(从上往下)001

②将二进制形式小数,写成科学计数法:1100.001→1.100001✖2^3

③按IEEE754标准来存放:

float:符号位|              指数位         | 尾数位           

             1位   |8位(指数位+127)|  23位 (小数位)    (位数不够从后补0补齐)          

double:符号位|              指数位             | 尾数位           

              1位      |11位(指数位+1023)|  52位 (小数位)

(4)字符型(用ASCII码)

1.字符型常量:‘a’      :单引号内只能单个字符。

2.定义字符型变量:char(小整型,与整型之间通用)

3.ASCII表 
  ①0~32 没有实际字符形式 (符号)  --- 控制字符
       不可见字符 
       控制效果 
  ②48~57 数字字符
       '0'~'9' 
   ③65~90  'A'~'Z'
   ④97~122 'a'~'z'

4.数字字符 数值数字 间转换 
         '1' -'0' =>   1 
         1 + '0'  =>   '1' 

  

你可能感兴趣的:(c语言,开发语言)