永发信息网

C语言的位运算:-3>>2怎么算?结果是-1。大神们具体一点,谢啦

答案:4  悬赏:20  手机版
解决时间 2021-02-08 12:25
  • 提问者网友:最爱你的唇
  • 2021-02-08 03:19
C语言的位运算:-3>>2怎么算?结果是-1。大神们具体一点,谢啦
最佳答案
  • 五星知识达人网友:不甚了了
  • 2021-02-08 04:47

全部回答
  • 1楼网友:底特律间谍
  • 2021-02-08 06:54
补符号位了
  • 2楼网友:三千妖杀
  • 2021-02-08 06:27
是二进制换算问题!
假设数值都是16位(方便解释),由于计算机是以数据补码的方式存储,所以要先算-3的补码再>>2
3原码:
0000 0000 0000 0011
-3原码:
1000 0000 0000 0011
-3反码:
你把-3转换为补码的形式,然后进行位计算,最后将结果转换回来。
  • 3楼网友:荒野風
  • 2021-02-08 05:28
以一个字节为例来说明:
char ch=-3;
在计算机中数值是用补码来存储的,故ch在内存中的内容为:
举个简单的例子把, 2<<1,结果为4,2<<2结果为8,找找规律吧,<<后面的数字代表的是2的几次方,<<后面是3那么就是乘以2^3,所以2<<3,其实意思就是2*2^3, 然后我们再推推另一个相反的
>>2,的意思就是除以2^2,所以8>>2,其实就是8/(2^2), 简单记忆就是方向向左就是 左乘2的几次方,方向向右就是 右除2的几次方
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯