原码、反码、补码及移位运算

本文介绍了机器码中的原码、反码、补码表示,重点解析了负数在计算机中的表示方式,并详细阐述了移位运算,包括左移(`<<`)和右移(`>>`)的规则,以及当移位超过数值类型最大位数时的处理方式。通过实例解释了-1右移两位的结果,帮助理解计算机中的减法运算和移位运算。
摘要由CSDN通过智能技术生成

同学面试时被问到一个问题:-1右移两位是几呢,然后在他思考期间,面试官露出了奇怪的表情……所以赶快复习一下机器码及移位的相关知识


首先介绍一下概念与规则:

1、一般书写表示的数叫做真值,真值在计算机中的表示方式叫做机器码。

2、正整数用原码、反码、补码三种方式表示时完全一样,比如1(int型占4位)的原码、反码、补码都为00000000 00000000 00000000 00000001。

3、负整数用原码、反码、补码表示时,符号为都为1,用二进制表示的数值位各不相同。原码符号位为1不变,数值位按位取反得到反码,反码符号位不变,最低位加1得到补码。例如-1的原码为10000000 00000000 00000000 00000001,反码为11111111 11111111 11111111 11111110,补码为11111111 11111111 11111111 11111111

4、为什么机器码要用补码表示呢?  用补码表示可以将减法运算转化为加法运算,这样在计算机中运算时比较方便,不论数是正是负,机器总是做加法。如1-1在计算机中是00000000 00000000 00000000 00000001 + 11111111 11111111 11111111 11111111 = 00000000 00000000 00000000 00000000 = 0


移位运算:

"<<"左移:右边空出的位置补0,左移一位相当于乘以2。1左移一位即为00000000 00000000 00000000 00000001左移一位为0000000

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值