C语言,原码,反码,补码,位运算。

二进制再运算中的说明

二进制是逢 2 进位的进位制,0、1 是基本算符。 现代的电子计算机技术全部采用的是二进制,因为它只使用 0、1 两个数字符号,非常简单方便,易于用电子 方式实现。计算机内部处理的信息,都是采用二进制数来表示的。二进制(Binary)数用 0 和 1 两个数字及其组合 来表示任何数。进位规则是“逢 2 进 1”,数字 1 在不同的位上代表不同的值,按从右至左的次序,这个值以二倍 递增。

原码、反码、补码

网上对原码,反码,补码的解释过于复杂,
我这里精简几句话: 对于有符号的而言:
1)二进制的最高位是符号位: 0 表示正数,1 表示负数
2)正数的原码,反码,补码都一样 (三码合一)
3)负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)
4)负数的补码=它的反码+1 //
5)0 的反码,补码都是 0
6)在计算机运算的时候,都是以补码的方式来运算的.

位运算

在这里插入图片描述

~ :取反 :取反的规则:0110 
<< :在一定范围内,每向左移动一位,相当于 * 2
>> :在一定范围内,每向右移动一位,相当于 / 2

如何最高效的计算 2 * 3 ? 答案:2 << 3 或者 8 << 1

C 语言位运算说明

它们的运算规则是:
1)按位与 & : 两位全为1,结果为 1,否则为 0
2)按位或 | : 两位有一个为 1,结果为 1,否则为 0
3)按位异或 ^ : 两位一个为 0,一个为 1,结果为 1,否则为 0
4)按位取反 : 0->1 ,1->0

比如:~2=? ~-5=? 2&-3=? 2|3=? 2^3=?

答:~2= -3 ,~-5 = 4,2&-3= 0,2|3=3, 2^3=1

运算大讲解

在这里插入图片描述
举例 ~-5 = 4

-5的原码是:10000000 00000000 00000000 00000101
	反码是:11111111 11111111 11111111 11111010
	补码是:11111111 11111111 11111111 11111011


取反之后的补码:00000000 00000000 00000000 00000100

因为正数的补码和反码和原码相同,则正数的补码就是它的原码,则 ~ -5 = 4。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值