计算机按位取反[通俗易懂]

计算机按位取反[通俗易懂]取反过程1.转成二进制2.取补码3.补码的反码(符号位不变)4.反码加+1可以通过原码、反码和补码三者的含义及关系来介绍三者之间的换算关系:1、原码原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如如果是8位二进制:[+1]原=00000001[-1]原=10000001第一位是符号位。2、反码

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

概念

*二进制数在内存中以补码的形式存储。

~是按位取反运算

可以通过原码、反码和补码三者的含义及关系来介绍三者之间的换算关系:
1、原码
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。
比如如果是8位二进制:
[+1]原 = 0000 0001
[-1]原 = 1000 0001
第一位是符号位。
2、反码
正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
第一位是符号位。
3、补码
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
第一位是符号位。
注:补码的补码等于原码,如:-1的补码为11111111,则11111111的反码为10000000
补码为10000001(-1的原码)。


实例

~1=-2

步骤一:1的二进制码
0000 0001
步骤二:1的补码
0000 0001
步骤三:按位取反
1111 1110
步骤四:求其原码(负数的补码求其原码 是-1取反)
补码-1为
1111 1101
然后取反
1000 0010 为-2


~2 =1

步骤一:2的二进制原码
1000 0010
步骤二:2的补码(负数补码为取反+1)
取反
1111 1101
先+1
1111 1110
步骤三:按位取反(正数的补码还是其本身 ,补码->本身 不变)
0000 0001
其原码
0000 0001(为1)


实际运算举例
~5

简单:加1符号位变 变-6

~-5
简单:负数就是加1 符号位变 4

总结

在按位取反的过程中
注意计算机存储的是每个数的补码,所以先求其补码,然后全部位按位取反 再求其原码
再求其原码注意现在是正数还是负数

正数的反码是其本身
正数的补码是其本身
负数的反码是除符号位其他全部按位取反
负数的补码是反码+1

最后总结 求补码,按位取反,求原码为结果
最后总结 求补码,按位取反,求原码为结果
最后总结 求补码,按位取反,求原码为结果

新总结

符号位(变化) +其他全部变化

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/170479.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java安全之JNI绕过RASP

    Java安全之JNI绕过RASP0x00前言前面一直想看该JNI的相关内容,但是发现JNI的资料还是偏少。后面发现JNI在安全中应用非常的微妙,有意思。0x01JNI概述JNI的全称叫做(

    2021年12月12日
  • adb安装使用

    adb安装使用adb工具即AndroidDebugBridge(安卓调试桥)tools。它就是一个命令行窗口,用于通过电脑端与模拟器或者真实设备交互。简单的说就是可以通过电脑端的命令行控制手机或者手机模拟器,例如可以控制手机的点击、滑动、安装应用、打开应用、关闭应用、输入文字等。(只适用于安卓手机)1.电脑端安装abdadb不用安装,下载解压就可以用,下载地址:http://pan.baidu.c…

  • 简单单元測试思想

    简单单元測试思想

  • C#编写单片机上位机软件-串口通讯(BMS汽车动力电池管理系统)

    C#编写单片机上位机软件-串口通讯(BMS汽车动力电池管理系统)上位机软件做了有一段时间,本人呕心沥血的作品。之前用python+pyQT5做,主线程特别特别容易闪退,数据重叠等问题,走了很多弯路;后来用VS的C#做,只能说上手很快,调试效果也不错,而且关键是非常非常简单易读,只希望大家不要像我一样,走这么多弯路–想要源码的小伙伴们,欢迎关注点赞三连+留言邮箱哦~华丽的分割线——————————————————————————————–

  • 图像标注-自动标注图像

    图像标注-自动标注图像常见的图像标注工具有Yolo_mark,labelImg,以下两篇文章是对这两款工具的说明Yolo_mark使用教程labelImg标注图像深度学习图像标注工具汇总这里需要提供另一款标注工具—百度物体检测模型,不同于以上的标注工具,百度提供的物体检测模型在标注一定数量(100张)后,提供智能标注功能,可以对数据集中的其他图片自动标注,详细介绍确认百度自动标注结果后可以将数据集…

  • SQL Server 2019下载及安装教程

    文章目录一、安装SQLServer2019二、安装SQLServerManagementStudio(SSMS)一、安装SQLServer2019搜索SQL,点击红色部分跳出一下界面,随便填,填完之后,点击continue。点击保存,保存成功之后,打开文件夹,右键以管理员身份启动,就会看见下面的画面,我这边选择的是自定义安装。弹出的选项,一个是中文,媒…

发表回复

您的电子邮箱地址不会被公开。

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