关于按位取反怎么算

关于按位取反怎么算一 首先二进制在计算机的内存中是以补码的形式存储二 正数的补码 原码 反码 负数的反码 原码的取反 二进制数的符号位除外 一般来说在二进制的左边的最高位 补码 反码 1 三 按位取反怎么算按位取反 二进制的每一位都取反 符号位 数据位 公式法 x x 1 举两个例子 11 11 1 12 11 10 公式法的内部是如何计算的呢 以 11 为例 11 的计算步骤 计算 11 的补码转二进制 01011 计算补码 01011 按位取反 10100 按位取反

一、首先二进制在计算机的内存中是以补码的形式存储
二、正数的补码=原码=反码,
负数的反码=原码的取反(二进制数的符号位除外,一般来说在二进制的左边的最高位)
负数的补码=反码+1


注意:
若已知补码为 1111 1000,如何求其原码呢?
1. 方法1:求负数 原码—>补码 的逆过程。
注意:符号位保持不变!
(A)先 – 1,得到 1111 0111
(B)取反(符号位保持不变,其他位置按位取反 ),得到 1000 1000
2. 方法2:
注意:符号位保持不变!
(A)将这个二进制数中(即 1111 1000),除了符号位,其余位置按位取反,得 1000 0111
(B)+ 1,得到 1000 1000






总结:-1 后,再取反 和 取反后,再+1 的效果是一样的,这就和 -(3-1) 和 (-3 +1) 是一个道理。




三、按位取反怎么算
按位取反:二进制的每一位都取反(符号位+数据位)
公式法:
~x=-(x+1)
举两个例子:~11=-(11+1)=-12
~(-11)=10




公式法的内部是如何计算的呢:
以~11为例:
~11的计算步骤:

  1. 计算11的补码
    转二进制:0 1011
    计算补码:0 1011

  2. 按位取反:1 0100 (按位取反是在这进行的,即补码的形式进行按位取反) 注意:这里是补码
  3. 将转为原码:
    取其反码(因为补码是负数):1 1011
    末位加一:1 1100

  4. 符号位为1是负数,即-12
  1. 计算-11的补码
    转二进制:1 1011
    计算补码:1 0101

  2. 按位取反:0 1010 (按位取反是在这进行的,即补码的形式进行按位取反) 注意:这里是补码
  3. 将转为原码:
    正数补码就是原码:0 1010
  4. 符号位为0是正数,即10
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227224.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午9:40
下一篇 2026年3月16日 下午9:40


相关推荐

  • Linux路由删除_删除路由命令 route delete

    Linux路由删除_删除路由命令 route deleteLinux中增加软路由的两种方法第一种:routeadd-net172.16.6.0netmask255.255.255.0gw172.16.2.254deveth0/*增加一条网络172.16.6.0/24经过172.16.2.254eth0*//*-net增加网络-host增加主机netmask子网掩码gw网关dev装置,设备,这里是你的网卡名*/ro…

    2022年10月4日
    5
  • 批量归一化batch_normalization

    为了解决在深度神经网络训练初期降低梯度消失/爆炸问题,Sergeyloffe和ChristianSzegedy提出了使用批量归一化的技术的方案,该技术包括在每一层激活函数之前在模型里加一个操作,简

    2021年12月30日
    37
  • Python:类的定义与使用

    Python:类的定义与使用类的定义与使用cball=Projectile(angle,vel,h0)中,cball传入给self一个炮弹从某个倾角射出计算水平位移和大致飞行时间的程序#projectile.p

    2022年7月5日
    23
  • 卸载Docker CE

    卸载Docker CEnbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 卸载 DockerCE 前言针对上一篇博客中的 DockerCE 的安装 有可能在实际的生产环境中使用 Docker 不是最新的 Latest 而需要特定 TAG 这儿就需要以前的 DockerCE 所有的安装包卸载干净 才能再次进行安装 nbsp 卸载 Do

    2026年3月26日
    2
  • navicat premium15.0.9 激活码-激活码分享

    (navicat premium15.0.9 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月27日
    502
  • 2019/7/3

    2019/7/31176E-Coverit!树的题常与层数,出度有关

    2022年6月16日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号