美文网首页
SQSH1616 12-13 C基础

SQSH1616 12-13 C基础

作者: 彳亍的心 | 来源:发表于2016-12-13 20:15 被阅读0次

    1.类型转化
    (1)隐式转化:
    当赋值号两边类型不同时,自动转化为精度较高的类型
    5/3 = 1.00000
    9.120000/5 = 1.824000
    (2)显式转化;
    强制类型转化,并不改变变量的类型,只临时做一次类型转化
    float_f = (float)int_t/int_t1
    2.位运算符
    1. &:位与
    |:位或
    ~:非(取反)
    ^:异或
    <<:左移
    >>:右移
    (1)二进制数 :由0和1组成

    2^0 2^1 2^2 2^3 2^4 2^5 2^6 2^7 2^8 2^9
    1 2 4 8 16 32 64 128 256 512

    101010= 0 + 2^1 + 0 + 2^3 + 0 +2^5

    (2)八进制数:由0~7组成的,八进制数开头是数字0,以区分八进制数
    0345 0123 0765 04321
    (3)十六进制数:由数字0-9和数字af或者AF组成,并且以0x或者0X开头
    0x123 0xab34 0XAB345 0XFFF
    (4)进制数
    二进制数:1111
    十进制数:1111----->8+4+2+1=15
    111----->4+2+1=7

    二进制 十进制 八进制 十六进制
    0000 0 0 0
    0001 1 1 1
    0010 2 2 2
    0011 3 3 3
    0100 4 4 4
    0101 5 5 5
    0110 6 6 6
    0111 7 7 7
    1000 8 8
    1001 9 9
    1010 10 a/A
    1011 11 b/B
    1100 12 c/C
    1101 13 d/D
    1111 15 f/F

    (5)
    10101011:171,0253,0xab(0XAB)
    0123:001 010 011
    0XA45:1010 0100 0101
    (6)位操作
    &:位与
    将十进制数,八进制数,十六进制数转化为对应二进制数,进行位与运算!!!
    4&3 = (0100 &0011) = 0000
    12&7 =(1100 &0111) = 0100
    即对应位同时为1时,结果为1,否则为0!!!
    |:位或
    4|3 = (0100 |0011) =7
    023|5 = (0010 0011 | 0101) = 10111
    13|9 = (1101 |0101) = 1101=13
    即:对应位只要有1,则为1;同时为0,才为0!!
    ~:非(取反)
    ~23: ~(0001 0111)
    -------------
    23:0001 1000
    补码1110 1000
    反码1110 0111
    原码1001 1000
    计算机是补码存储,原码输出!!!!
    原码:正数的原码是是本身
    反码:符号位不变,其他位按位取反
    补码:负数的补码是其正数的原码取反加1.

    ^:异或

             4^7 =
                 0100
                ^0111
                -----
                 0011
                 3
            4^3 =
                 0100
                ^0011
                 ----
                 0111
                 7
    

    <<:左移

             8<<2
              1000
              <<2
              100000
              32
          4<<4
              0100
              <<4
              100000
              32
              即转化为二进制,然后左移
    

    然后 >>:右移

              8>>2
              1000
              >>2
              0010
              2
          4>>4
              0100
              0000.01
              0  
              即转化为二进制,然后右移
    

    3.赋值操作符:=
    +=
    num += i;----> -= *= /= %= &= |=
    4.逻辑运算符和条件运算符
    (1)
    &&:逻辑与
    表达式1&&表达式2
    当表达式1和表达式2同时为真,结果为真
    ||:逻辑或
    表达式1||表达式2
    表达式1和表达式2只要有一个为真,结果为真
    注意:只要有一个为真,即可!
    !:非
    !表达式
    若表达式为真,作为结果为假
    反之,则真
    (2)条件运算符
    ?:
    表达式1?表达式2:表达式3
    若表达式1为真,则执行表达式2,否则执行表达式3
    a>b?a:b
    a,b,c---->max
    a>b?(a>c?a:b):(b>c?b:c)
    5.运算符的优先级
    括号成员第一,全体单目第二,乘除余三,加减四;
    位移五,关系六,等与不等排第七
    位与,异或和位或八九十
    逻辑或和与十二和十一
    条件高于赋值,逗号运算最低!
    二.C语言的三大结构
    顺序结构、分支结构、循环结构
    1.分支结构
    (1)if(表达式)
    {.....}
    表达式为真则执行{}里的语句;
    若为假,则不执行{}里的语句;
    (2)if.....else
    (3)if
    else if
    else if
    (4)if的嵌套使用
    练习:
    使用if的注意事项
    80 <num <90 //错误
    num>80 && num<=90 //ok
    if条件句后面只有一条语句时,可以不加{};但此语句不能是变量定义语句。
    例子:
    if(1)
    printf("hello\n") ;
    printf("world!\n") ;
    说明:if的有效语句只有:printf("");

        在if(1)
        {
           printf("hello\n");
           int num = 0;
           printf("num = %d\n,"num);
           }
           printf("num = %d\n",num);    //错误            
    

    2.switch....case

        (1) switch(option)
          {
              case option1;
              break;
              case option2;
              break;
              case option3;
              break;
              default;
              break;
              }
    

    根据option的值选择性执行case语句,若没有与值对应的case语句,则执行default语句!
    (2)注意事项:
    default语句可以放在switch{}里面的任意位置;
    case语句后的{},可以省略不写,当case后的之后的执行语句超过三条,则建议加{}。
    (3)case语句中break视情况而定是否写;
    若case语句中无break。则顺次执行所有的case语句
    直到把所有的case语句执行完毕,退出switch!*/
    三、循环结构
    while() do{}while() for(;;)
    1.while (表达式)
    {
    //执行语句
    }
    先判断条件是否满足执行条件,满足则执行循环体,
    不满足则退出循环!
    若满足条件,则执行循环体 ,每执行一次循环体
    进行一次条件判断

    先判断后执行
    2.break/continue
    break:跳出当前循环
    continue:跳过本次循环,进行下一次循环
    do{}while()
    do
    {
    //循环体
    }while(表达式);
    先执行后判断
    3.for(;;)
    for(表达式1;表达式2;表达式3)
    {
    //循环体;
    }
    表达式1:
    循环条件初始
    表达式2:
    循环结束条件或者循环执行条件
    表达式3:
    循环步长或者变量值的更新
    主:表达式1,2,3可以任意省略,或全部省略
    但是,“;;”不能省略!!!
    今天开始进行编程了,学习的东西都有大概的印象,需要用课后的时间多加练习,熟悉掌握它们。加油!!!

    相关文章

      网友评论

          本文标题:SQSH1616 12-13 C基础

          本文链接:https://www.haomeiwen.com/subject/euebmttx.html