C语言学习记录2022.5.14基本的操作符概念

本文介绍了C++中的按位取反操作符“~”的工作原理,详细解释了补码表示下负数的取反过程。同时,讨论了强制类型转换的重要性,特别是在将浮点数转换为整数时避免编译警告的方法。此外,还提醒读者区分逻辑操作符与按位操作符的区别,以及三目操作符的使用规则。
摘要由CSDN通过智能技术生成

1、关于按位取反操作符“~”的说明:

//由于计算机在存储负数的时候内存中是以补码的形式存储的,所以
//以下例子与常识不一样
int main()
{
    int a = 0;
    int b = ~a;
    printf("%d\n", b);       //在打印按位取反的a即b时,并不是常识中            
                             //00000000000000000000000000000000变为
                             //11111111111111111111111111111111即2^32
                             //而是-1
                             //因为此时计算机内存中存储的32位“1”是以补码的形式存储的
                             //而打印的是原码,要求出原码需经过“补码-1再除了最高位符号位不变取反”
                             //即补码11111111111111111111111111111111
                             //反码11111111111111111111111111111110
                             //原码10000000000000000000000000000001
                             //原码转为十进制就是-1
    return 0;
}

2、关于强制类型转换:

int main()
{
    int a = 3.14;

    return 0;            //此时编译器会出现一个警告,因为3.14是double类型的,int为整型
                         //如果想消除这个警告则要进行强制类型转换,即int a = (int)3.14;
}

3、逻辑与“&&”和按位与“&”要分清,逻辑或“||”和按位或“|”也要分清。

4、“a? b : c”称为三目操作符或条件操作符,此操作符的运行规则是,如果a为真那么表达式的值为b;如果a为假,那么表达式的值为c。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值