02 C Operator

运算符

位操作符

位操作符 语法 样例
按位与 & Expr1 & Expr2 0011 & 1001 = 0001
按位或 | Expr1 | Expr2 0011 | 1001 = 1011
按位异或 ^ Expr1 ^ Expr2 0011 ^ 1001 = 1010
按位取反 ~ ~Expr ~0011 = 1100
按位左移 << Expr1 << Expr2 5 << 2 = 20 (十进制)
按位右移 >> Expr1 >> Expr2 20 >> 2 = 5 (十进制)

样例

//按二进制输出某数的低16位
#include <stdio.h>
int main()
{
    int num, mask, i;
    printf("Input an integer number: ");
    scanf("%d", &num);
    /*构造最高位为1、其余各位为0的整数(屏蔽字)*/
    mask = 1 << 15;  
    printf("%d = ", num);
    for (i = 1; i <= 16; i++)
    {
        /*输出最高位的值(1/0)*/
        putchar(num & mask ? '1':'0');
        num <<= 1; /*将次高位移到最高位上*/
        if (i % 4 == 0) 
            putchar(', '); /*四位一组,用逗号分开*/
    }
    printf("\bB\n");
}

逻辑操作符

优先级:! > && > ||

条件操作符

Expr1 ? Expr2 : Expr3

max = (a > b) ? a++ : ++b;

若a=4,b=0,则a等于5,b等于0,max等于4

若a=0,b=1,则a等于4,b等于2,max等于2

类型转换

隐式类型转换

int a=1;
double b=a*0.5;

强制类型转换

(Type) Expr

posted @ 2025-04-11 16:34  YamadaRyou  阅读(12)  评论(0)    收藏  举报