原码,补码,二进制减法计算_二进制的原码和补码

原码,补码,二进制减法计算_二进制的原码和补码这篇博客从一道题说起,已知x = (1<<31)-3,求x&-x?这里面考察了二进制的减法,减法也就牵涉了原码补码的一些概念。这里进行下梳理。 一。原码,补码概念1.原码就是早期用来表示数字的一种方式。一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码例如:假设机器是32位系统,in…

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

Jetbrains全系列IDE稳定放心使用

这篇博客从一道题说起,

已知 x  = (1<<31)-3,求x&-x?

这里面考察了二进制的减法,减法也就牵涉了原码补码的一些概念。

这里进行下梳理。

 

一。原码,补码概念

1.原码就是早期用来表示数字的一种方式。

一个正数,转换为二进制位就是这个正数的原码。

负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码

例如:假设机器是32位系统,

int类型的 3 的原码是 00000000 00000000 00000000 00000011

对于int类型的-3的原码是00000000 00000000 00000000 00000011高位补1得到10000000 00000000 00000000 00000011

2.反码

正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反

int类型的 3 的反码是 00000000 00000000 00000000 00000011,和原码一样

int类型的-3的反码是11111111 11111111 11111111 11111100

3.补码

正数的补码与原码相同,负数的补码为其原码除符号位外所有位取反(得到反码了),然后最低位加1.

int类型的 3 的补码是 00000000 00000000 00000000 00000011

int类型的 -3 的补码是 11111111 11111111 1111111 11111101

过程:10000000 00000000 00000000 00000011除符号位取反

       -> 11111111 11111111 1111111 11111100 再加1

       -> 11111111 11111111 1111111 11111101

总结来说,求负数补码有两种方法。

(1)正数原码求反+1

(2)负数原码除符号位求反+1

 

二。二进制减法

原码,补码,二进制减法计算_二进制的原码和补码

在运算过程中,从右往左逐位进行计算。 
(1)1-0=1; 
(2)0不够减1,向前借1后加2变成2;2-1=1; 
(3)0在上一步被借1所以减为-1,-1不够减0,向前借一后加2变成1;1-0=1; 
(4)在上一步被借一所以减为0,0不够减1,向前借一后加2变成2;2-1=1; 
(5)在上一步被借一所以减为-1,-1不够减1,向前借一后加2变成1;1-1=0; 
(6)在上一步被借一所以减为0,0-0=0. 
 

三。开头题目

(1) 求1<<31:10000000 0000000 00000000 00000000

(2)减去3: 

   10000000 0000000 00000000 00000000

-00000000 00000000 00000000 00000011

= 01111111 11111111 11111111 11111101 即 x

(3)求x&-x

首先求-x的外码(参考资料3),x原码求反+1,得到10000000 00000000 00000000 00000011

01111111 11111111 11111111 11111101&10000000 00000000 00000000 00000011 = 1(答案)

 

四。参考资料:

1.正数的原码,反码,补码

2.二进制减法

3.计算机负数与正数的按位与操作

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

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

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

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

(0)


相关推荐

  • dw中css制作导航,Dreamweaver导航条按钮制作方法

    dw中css制作导航,Dreamweaver导航条按钮制作方法核心提示:教你Dreamweaver用表格巧妙制作导航条按钮看到上面的导航条了吗?你可以点击一下看看它的效果,请注意,这可是用表格做出来的,你相信吗?其实代码很简单,现在让我们来看看该怎么做。1.首先创建一个1×6的表格,参数为:border=0cellspacing=3cellpadding=0;2.在这个表格的每个单元格内分别插入一个表格,宽度和高度设为100%;3.建立一个CSS样式.u…

  • readprocessmemory error 299[通俗易懂]

    readprocessmemory error 299[通俗易懂]Itrytoreadallcommitedpagesofaprocess(Win7-64).Onmostpagesitworksbutitfailsforafewpages.Icannotexplainwhy.Hereismytestprogramme(compiledx32,testedinWin7-64):#inclu

  • networkmanager和network区别_network graph

    networkmanager和network区别_network graph一、NetworkManager做了什么:NetworkManager确保网络连接正常。当检测到系统中没有网络配置但有网络设备时,NetworkManager会创建临时连接以提供连接。通过不同的工具(GUI,nmtui,nmcli)提供管理。NetworkManager可以配置网络别名,IP地址,静态路由,DNS信息和VPN连接,以及许多特定于连接的参数。重新启动后保持设备状态,并接管重新启动期间设置为受管模式的接口。未明确设置为不受管理但由用户或其他网络服务手动控制的设备。可以和netwo

  • Adobe Premiere Pro 2020(PR)系统兼容性报告(不支持的视频驱动程序)完美解决方案[通俗易懂]

    Adobe Premiere Pro 2020(PR)系统兼容性报告(不支持的视频驱动程序)完美解决方案[通俗易懂]背景近日,由于博主的笔记本电脑过于卡顿,升级了128GB的固态硬盘到512GB,重装系统后也需要重装生产力工具——Adobe系列全家桶。2019年10月,Adobe发布了最新的AdobePremierePro2020以及其他系列的最新版本全家桶应用,换了硬盘的博主自然要重装系统和重装AdobePremierePro2020等生产力工具。然而,在本次AdobePremiereP…

  • JAVA常见知识

    JAVA常见知识JAVA常见知识

  • Oracle恢复流程

    Oracle恢复流程备份(Backup):数据文件、控制文件、归档->备份文件还原(Restore):备份文件->数据文件状态物理恢复(Recover):数据文件+应用日志文件【归档+控制文件】时间点逻辑实验记录

发表回复

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

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