c语音基础知识(进制,关键字,运算符)

本文详细介绍了十进制、二进制、八进制和十六进制的基本概念,展示了它们之间的转换方法,以及计算机中数据的存储方式,包括补码表示、非数值数据、词法符号、数据类型、常量和变量的定义与初始化。
摘要由CSDN通过智能技术生成

常见的进制

1、十进制
   逢十进一 0~9
   基数:10
   位权:10^n-1
   123=1*10^2+2*10^1+3=100+20+3+123
2、二进制 0b/0B 
    逢二进一  0,1
    基数:2
    位权:2^n-1
    0b1001+0b0011=1100
    1111=1*2^3+1*2^2+2+1=15
3、八进制 0
    逢八进一  0~7
    基数:8
    位权:8^n-1
    0456+0123=601
    456=4*8^2+5*8^1+6=302
4、十六进制 0x
    逢十六进一  0~9 a ,b ,c,d,e,f(a~f)
    基数:16
    位权:16^n-1
    0x4a5=4*16^2+10*16+5=1189

进制之间的转换

1、十进制转二进制:    
    短除法:除二至商为0取余数的倒置(除基取余法)
        985 == 1111011001
    凑数法:985 == 512 + 256 + 128 + 64 + 16 + 8 + 1 ==
    2^9*1 + 2^8*1 + 2^7*1 + 2^6*1 + 2^5*0 + 2^4 *1 + 2^3*1 + 2^2*0 + 2^1*0 + 2^0*1
二进制转十进制:
       11001 ==2^4 *1 + 2^3*1 + 2^2*0 + 2^1*0 + 2^0*1 == 25
2、八进制转二进制:
    01234 == 001 010 011 100
二进制转八进制:
    1 111 011 001 == 01731
一位八进制数转换为三位二进制数
     八进制      二进制
       0         000
       1         001
       2         010
       3         011
       4         100
       5         101
       6         110
       7         111
3、十六进制转二进制:
    0x2a == 0010 1010
二进制转十六进制:
    11 1101 1001 == 0x3d9
一位十六进制数转换为四位二进制数
    十六进制      二进制
       0         0000
       1         0001
       2         0010
       3         0011
       4         0100
       5         0101
       6         0110
       7         0111
       8         1000
       9         1001
       a         1010
       b         1011
       c         1100
       d         1101
       e         1110
       f         1111
十六进制和八进制之间转换先转换为二进制再转换为十六进制或八进制  

计算机中数据的存储方式

数据都是以补码形式存放
1、正数:原码、补码、反码相同
2、负数:反码:符号位不变其它位按位取反 0-1 1-0
        补码:补码=反码+1
3、已知补码求原码:法(1)先—1,除符号位取反就是
                法(2)对补码取补码也可以(补码取反+1)
                原码:10011100
                反码:11100011
                补码:11100100

非数值数据


非数值数据包括字符、符号、转义符等。
ASCII表提供非数值数据的整数表达(man帮助手册查询ASCII表)
        ‘\0’------0
        '\n'-----10
        SPACE----32
        'A'------65
        'a'------97

词法符号


1、关键字--32个
    
        [1] 数据类型: char(字符) short int long  float(浮点型) double signed unsigned                          --8个   
        [2] 存储类型:auto register(寄存器) extern static const volatile                                 --6个
        [3] 语句:if else switch case while do for continue break goto return default                      --12个       
        [4] 构造:struct union enum                  --3个     
        [5] 空类型:void
        [6] 取别名:typedef
        [7] sizeof运算符:sizeof(计算数据类型大小)
    
2、标识符
    标识符是程序员按命名规则自定义的符号
    命名规则:(1)只能由字母、数字和下划线组成
            (2)不能以数字开头
            (3)不能和关键字重名
    大小写敏感
    
3、运算符
    [1]算数运算符: + - * / %
    [2]逻辑运算符:&& || !
    [3]关系运算符:< > == != >= <=
    [4]位运算符:& | ~ ^ << >>
    [5]赋值运算符:= += -= *= /=
    [6]递增递减运算符: ++ --
    [7]地址运算法:* &
    [8]逗号运算符:,
    [9]sizeof运算符:sizeof(计算数据类型大小)
    [10]三目运算符: ?:
    
4、分隔符
    用来分割其他的词法符号
    空格符、制表符、换行符、注释
    //表示注释一行
    /*
    jdjdhdxcdn
    */
    #if 0
    
    #endif
    
5、标点符号
     , ; :() {} []

数据类型

[1] char 字符型
    'a' 'b'
    占一字节空间
    1bytes=8bit
    取值范围: signed char :-2^7~2^7-1
             unsigned char : 0~2^8-1
[2]short 短整型
      占2个字节空间
      取值范围: signed short :-2^15~2^15-1
             unsigned short : 0~2^16-1
[3]int  整型   
     占4个字节空间
[4]long   长整型 
     32位:4bytes
     64位:8bytes
[5]浮点型
   float:单精度浮点型,精确到小数点后6~7位 (4bytes)
   double:双精度浮点型,精确到小数点后15~16位 (8bytes)
[6]bool类型
     true false
[7]viod空类型     

常量

整型常量:1,2,3.....100
字符型常量:'a' 'A' 'B'
字符串常量:"hello"  "12345"  "a"
    "hello" ==> 'h'+'e'+'l'+'l'+'o'+'\0'
浮点型常量:3.14  2.338e-8//2.338*10^-8
标识常量:宏定义
    #define MAX 100

变量:用来保存不同的常量

[1]变量的定义
    <存储类型> <数据类型> 变量名 ;
    存储类型: register auto extern static
    auto :自动存储类型,系统自动为变量开辟空间,在内存中
    register:将变量存储到寄存器中,但一般申请不成功,此时变量的存储类型为auto 
    extern: 外部声明    
    static:静态修饰变量
        
数据类型: char int long float double ....
变量名:标识符
        标识符命名规则
            1、只能由字母、数字和下划线组成
            2、不能以数字开头
            3、不能和关键字重名
[2]变量的初始化
         int a = 10; //初始化a的值为10
         int a;
         a=10;
[3]局部变量和全局变量
     .定义在模块内的变量为局部变量
     .定义在模块外的变量为全局变量
     .当模块结束后,该模块在内存中的空间会被系统回收,局部变量的空间也会被回收

  • 46
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值