8.初始操作符

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{

    int a = 9 / 2;
    float b = 9 / 2;
    printf("%d\n", a);             //结果为4
    printf("%f\n", b);             //结果为4

    //想要打印出4.5的方法把除数用用浮点型即可,例:

    float c = 9 / 2.0;
    printf("%f\n", c);

    int d = 9 % 2;
    printf("%d\n", d);       //结果为1,%的意思是9除2的余数,读为9模(余)2。

    int num1 = 2;
    int num2 = num1 << 1;
    int num3 = num1 >> 1;     //右移操作符同理
    printf("%d\n", num2);     //结果为4,<<左移的是二进制的操作符,左移的剩余位置用0替代,由10 (2) --  100 (4),
    printf("%d\n", num3);

    位操作符:
     & 按位与
     | 按位或
     ^ 按位异或

    两个a的表达相同:
    a = a + 5;
    a += 5;

    //C语言中:0表示假的,1表示真的
    int A = 10;
    printf("%d\n", !A);    //!表示逻辑取反,即假的变真,真的变假
    //正常用的方法:
    if (a)
    {
        //如果a为真,做事
    }
    if (!a)
    {
        //如果a为假,做事
    }

    //sizeof是操作符
    //计算类型或者变量大小的 
    int B = 10;                            //单位都为字节
    printf("%d\n", sizeof(int));           //结果为4
    printf("%d\n", sizeof(B));             //结果为4

    int arr[10] = { 0 };
    printf("%d\n", sizeof(arr));           //结果为40,10个整数,即4*10
    printf("%d\n", sizeof(arr[0]));        //结果为4
    int sz = sizeof(arr) / sizeof(arr[0]);
    printf("%d\n", sz);                    //结果为10,40/4

    return 0;
}

int main()
{
    //~是按位取反,按位取反是全部都取反(包括符号位)
    int a = 0;

    printf("%d\n", ~a);                             //打印的是-1

    按(二进制)位取反,把所有的0变成1,1变成0
    0的二进制是00000000000000000000000000000000     a
               11111111111111111111111111111111    ~a

    一个整数的二进制表示有三种:
    负数的计算:  (-1)                              正数的计算:源码,反码,补码相同
    10000000000000000000000000000001(源码)
    11111111111111111111111111111110(反码)         //源码到反码是符号位不变,其他位按位取反
    11111111111111111111111111111111(补码)         //补码是反码 +1
    计算机在内存存储的是补码,第一个是符号位

    int num1 = 10;
    int num2 = ++num1;   //先++,后使用   //num1++是先使用,再++

    printf("%d\n", num2);//11             //10
    printf("%d\n", num1);//11             //11

    return 0;
}

int main()
{
    //&&逻辑与
    //

    int A = 10;
    int B = 5;
    int C = A && B;//(两个都要满足)
    int D = A || B;//(只要满足一个)

    printf("%d\n", C);


    exp1 ? exp2 : exp3;
    exp1成立,exp2计算,那么exp2为整个表达式的结果
    exp1不成立,exp3计算,那么exp3为整个表达式的结果
    例子:
    int a = 0;
    int b = 3;
    int MAX = 0;

    /*if (a > b)
    {
        MAX = a;
    }
    else
    {
        MAX = b;
    }*/

    MAX = a > b ? a : b;  //条件操作符
    printf("%d\n", MAX);


    //逗号表达式:
    int num1 = 5;
    int num2 = 2;
    int num3 = 4;
    int num4 = (num1 = num1 + 2, num2 = num1 - 4, num3 = num2 + 4);   //从左到右开始计算,最后结果为num3的结果
    printf("%d\n", num3);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值