二进制减法计算,负数原码、反码和补码之间的关系

二进制减法计算,负数原码、反码和补码之间的关系二进制减法类似于十进制的减法,我们从十进制的减法来推出二进制减法如何进行运算。二进制计算例如101001-011010=001111(41-26=15)的运算。灰色部分为计算过程,绿色字为被减一得到的数,红色字为借一后得到的数。在运算过程中,从右往左逐位进行计算。1-0=1; 0不够减1,向前借一后加2变成2;2-1=1; 0在上一步被借一所以减为-1,-1不够减…

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

Jetbrains全系列IDE稳定放心使用

二进制减法类似于十进制的减法,我们从十进制的减法来推出二进制减法如何进行运算。

二进制计算
 
例如101001-011010=001111(41-26=15)的运算。

灰色部分为计算过程,绿色字为被减一得到的数,红色字为借一后得到的数。 

äºè¿å¶è®¡ç®
在运算过程中,从右往左逐位进行计算。 

  • 1-0=1; 
  • 0不够减1,向前借一后加2变成2;2-1=1; 
  • 0在上一步被借一所以减为-1,-1不够减0,向前借一后加2变成1;1-0=1; 
  • 1在上一步被借一所以减为0,0不够减1,向前借一后加2变成2;2-1=1; 
  • 0在上一步被借一所以减为-1,-1不够减1,向前借一后加2变成1;1-1=0; 
  • 1在上一步被借一所以减为0,0-0=0. 
  • 由此推出:数不够减就向前借一位,然后该数加2.

可见二进制和十进制减法的区别就是向前借一后加2.

原码、反码和补码之间的关系:

  1. 负整数求补码:将负整数转换为二进制得到其原码(最高位为符号位1(正整数0,负整数为1)),将其取反得到其反码,然后加1,得到其补码;
  2. 负整数知补码求原码将补码减一,取反得到其反码;
  3. 正整数的原码等于反码等于补码,最高位为0;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springBoot+mybatis报错Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required

    springBoot+mybatis报错Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required报错为:Invocationofinitmethodfailed;nestedexceptionisjava.lang.IllegalArgumentException:Property’sqlSessionFactory’or’sqlSessionTemplate’arerequired日志很长,报错在末尾2018-07-1213:56:41.760 I…

    2022年5月6日
    191
  • mysql数据库语句左连接_MySQL 左连接 右连接 详解

    mysql数据库语句左连接_MySQL 左连接 右连接 详解表A记录如下:aIDaNum1a200501112a200501123a200501134a200501145a20050115表B记录如下:bIDbName12006032401220060324023…

    2022年6月9日
    49
  • Eclipse的代码自动补全功能「建议收藏」

    Eclipse的代码自动补全功能「建议收藏」Eclipse的代码自动补全功能学习Java已有两个月的时间了,今天鼓起勇气尝试写第一篇CSDN博客,希望在帮助自己记录的同时能够帮助到有需要的朋友。众所周知Eclipse是一款非常智能的IDE工具,那么我们如何设置才能让它更为智能呢?本文主要介绍以下两点内容。Eclipse代码自动补全功能只按回车键来达到自动补全代码的目的要实现Eclipse的代码自动补全功能,我们需要这样设置…

    2022年5月31日
    67
  • jvm内存泄漏

    jvm内存泄漏内存泄漏和内存溢出的关系内存泄露:指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收,它始终占用内存。即被分配的对象可达但已无用。内存溢出:指程序运行过程中无法申请到足够的内存而导致的一种错误。内存溢出通常发生于OLD段或Perm段垃圾回收后,仍然无内存空间容纳新的Java对象的情况。从定义上可以看出内存泄露是内存溢出的一种诱因,但是不是唯一因素。可以使用Runtime.ge…

    2022年5月6日
    50
  • matlab 画折线图

    matlab 画折线图代码:效果图:x=1:1:5就是x轴上的数据,从1开始到5结束(即应该有五个数据),每个数据的间隔是1.把开始的1改成2,结束的5改成6,整个折线图就会向右平移一个单位。plot(x,a,’-*b’,x,b,’-or’)是设置折线图中相应点和线的特征的,函数说明如下:对于‘’内的线条形状,总结了如下图:线型:线条宽度:指定线条的宽度,取值为整数(…

    2022年4月29日
    64
  • CTF流量分析常见题型(二)-USB流量

    CTF流量分析常见题型(二)-USB流量0x00前言在学习Wireshark常见使用时,对常见CTF流量分析题型和铁人三项流量分析题的部分问题进行了简单总结。由于篇幅过长,于是另起一篇总结常见流量包分析。包括USB流量包分析和一些其他流量包分析。0x01USB流量包分析USB流量指的是USB设备接口的流量,攻击者能够通过监听usb接口流量获取键盘敲击键、鼠标移动与点击、存储设备的铭文传输通信、USB无线网卡网络传输内容等等。在CTF中,USB流量分析主要以键盘和鼠标流量为主。1、键盘流量USB协议数据部分在LeftoverCapt

    2022年6月11日
    139

发表回复

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

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