逗号、条件运算符、移位、原码、反码、补码

本文介绍了C/C++中的逗号运算符、条件运算符和位运算符的用法。逗号运算符用于顺序求值,条件运算符实现三元逻辑判断,位运算符包括按位求反、按位与、按位或和按位异或,以及位移位运算。此外,还详细解释了原码、反码和补码的概念及其在正负数中的应用。
摘要由CSDN通过智能技术生成

1.逗号运算符
逗号运算符即顺序求值运算符
phrase1,phrase2,phrase3,phrase4;//逗号运算符的结果为phrase4的结果

i=2*3,i*4,i+1;//i的值为6,逗号表达式的值为7

2.条件运算符
形如:p?a:b;

(a>0)?(a=1:(a=-1);//若a>0,则将1赋与a,否则,-1赋与a

3.位运算符
按位求反(~),按位与(&),按位或(|),按位异或(^)

a=01000001       ~a=10111110
b=01010000       ~b=10101111
c=10100000       ~c=01011111
a&b=01000000     b&c=00000000
a|b=01010001     b|c=11110000
a^b=00010001     b^c=11110000

4位移位运算符
1)无符号/带符号数左移,超出部分丢弃,空缺部分补0

a=01000001     a<<2=00000100//a左移2位
b=01010001     b<<1=10100010

2)无符号数右移,超出部分丢弃,空缺部分补0;带符号数右移,超出部分丢弃,空缺部分补符号位(符号位为二进制最左端的位数)

c=-4,d=5
c=1111111111111100       d=0000000000000101//c符号位1,d符号位0
d>>2=0000000000000001//无符号数d右移2位
c>>2=1111111111111111//有符号数c右移2位

对于无符号/有符号数,右移n位,相当于原数除以2n,左移n位,相当于原数乘以2n
5.原码、反码、补码
数据的存储是数据的补码,正数符位为0,负数符号位为1
对于正数:原码,反码,补码一致

0000000000000001//原码
0000000000000001//反码
0000000000000001//补码

对于负数:负数原码,符号位为1,其余为数值位;负数反码,符号位不变,其余位原码按位取反;负数补码等于反码+1

1000000000001010//原码
1111111111110101//反码
1111111111110110//补码

结语:仅个人学习过程所记,若有错误,望指正,一起进步。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值