原码/反码/补码在线计算器[通俗易懂]

原码/反码/补码在线计算器[通俗易懂]原码/反码/补码计算器,在线计算给定整数的原码/反码/补码。工具链接:http://www.atoolbox.net/Tool.php?Id=952原码,反码和补码的概念对于一个数,计算机要使用一定的编码方式进行存储.原码,反码,补码是机器存储一个具体数字的编码方式.原码:原码就是早期用来表示数字的一种方式:一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码。举例:int类型的3的原码是11B(B表示二进制位)

大家好,又见面了,我是你们的朋友全栈君。

原码/反码/补码计算器,在线计算给定整数的原码/反码/补码。

工具链接:http://www.atoolbox.net/Tool.php?Id=952

原码/反码/补码在线计算器[通俗易懂]

原码, 反码和补码的概念

对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式.

原码:原码就是早期用来表示数字的一种方式: 一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码。

举例:

int类型的 3 的原码是 11B(B表示二进制位), 在32位机器上占四个字节,那么高位补零就得:

00000000 00000000 00000000 00000011

int类型的 -3 的绝对值的二进制位就是上面的 11B 展开后高位补零就得:

10000000 00000000 00000000 00000011      

但是原码有几个缺点,零分两种 +0 和 -0 。很奇怪是吧!还有,在进行不同符号的加法运算或者同符号的减法运算的时候,不能直接判断出结果的正负。你需要将两个值的绝对值进行比较,然后进行加减操作 ,最后符号位由绝对值大的决定。于是反码就产生了。

 

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

举例:

int类型的 3 的反码是

00000000 00000000 00000000 00000011

和原码一样没什么可说的

int类型的 -3 的反码是

11111111 11111111 11111111 11111100

除开符号位,所有位,取反

解决了加减运算的问题,但还是有正负零之分,然后就到补码了

 

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

举例:

int类型的 3 的补码是:

00000000 00000000 00000000 00000011

int类型的 -3 的补码是

11111111 11111111 1111111 11111101

就是其反码加1

最后总结:

正数的反码和补码都与原码相同。

负数的反码为对该数的原码除符号位外各位取反。

负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1。

 

扩展资料
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。

20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,因为数字计算机只能识别和处理由‘0’.‘1’符号串组成的代码。其运算模式正是二进制。19世纪爱尔兰逻辑学家乔治布尔对逻辑命题的思考过程转化为对符号”0”.”1”的某种代数演算,二进制是逢2进位的进位制。0、1是基本算符。因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现。

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

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

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


相关推荐

  • ws 无法热替换的问题

    ws 无法热替换的问题

    2022年2月23日
    38
  • 通过PropertyDescriptor反射获取属性的 getter/setter 方法「建议收藏」

    通过PropertyDescriptor反射获取属性的 getter/setter 方法「建议收藏」      Java类中的私有的(private)属性是获取不到的(即使使用继承依然获取不到),那如果非要获取私有属性的值怎么办呢?一般的做法是将该java类封装称为一个JavaBean,即封装该私有属性,提供一对共有的get,set方法来访问私有属性。一般情况下都会这样做!但遇到特殊情况呢?比如,现有一个需求:访问一个Java类的私有属性,并且该类不提供访问该私有属性的共有方法。  …

    2022年10月1日
    5
  • 微信公众平台开发(十) 消息回复总结

    微信公众平台开发(十) 消息回复总结一、简介微信公众平台提供了三种消息回复的格式,即文本回复、音乐回复和图文回复,在这一篇文章中,我们将对这三种消息回复的格式做一下简单讲解,然后封装成函数,以供读者使用。二、思路分析对于每一个POST请

    2022年8月5日
    10
  • 简单介绍一下spring bean的生命周期_Spring bean的生命周期

    简单介绍一下spring bean的生命周期_Spring bean的生命周期一、简介   SpringBean的生命周期在整个Spring中占有很重要的位置,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个Bean的别名只能维持一个实例,而不是每次都产生一个新的对象使用Singleton模式产生单一实例,在spring中,singleton属性默认是true,只有设定为false,则每次指定别名取…

    2022年9月19日
    2
  • Redis客户端安装与安装包

    Redis客户端安装与安装包为了更方便使用Redis,我们经常都会安装一些图像化管理工具,Redis的客户端工具其实也挺多的,但总体来说,使用效果比较好的,我觉得这个比较好。以下简单简述安装课程。首先双击打开安装文件“Redis客户端.exe”:点击“Next”进行下一步:点击”IAgree“,进行下一步: 可根据自己的要求修改安装路径,然后点击“Install”,进行下一步: 安装中,大概几秒中就可以安装完毕: 点击“Next”,进行下一步: …

    2022年5月13日
    39
  • route add 添加路由参数错误_route删除路由

    route add 添加路由参数错误_route删除路由routeadd命令的主要作用是添加静态路由,通常的格式是:routeADD157.0.0.0MASK255.0.0.0157.55.80.1METRIC3IF2参数含义:^destination^mask^gatewaymetric^^interfacedestination【网段地址】mask【子网掩码】gateway【网关地址】metric【路由跳数…

    2022年8月12日
    61

发表回复

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

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