记得之前学C语言的时候老师课上讲过一些,不过当时觉得考试不考,也就上课听了下,下课也没怎么多做了解。这次,Java课上再次提出来了,自己也超越了些资料,对这三种概念算是有所初步了解。

1、原码

数据储存的一种,就是以最高位储存符号(0为正数,1为负数),其他位储存数字(以二进制方式)

例如:

7 0000 0111
-7 1000 0111

2、反码

正数的反码与原码一致,而负数的反码则是除最高位以外的数字全部相反(0换成1,1换成0)

例如:

  7 -7
原码 0000 0111 1000 0111
反码 0000 0111 1111 1000

3、补码

正数的补码与原码一致,负数的补码是反码+1

例如:

  7 -7
原码 0000 0111 1000 0111
反码 0000 0111 1111 1000
补码 0000 0111 1111 1001

在资料上也看到了一些测试方法,用原码计算10-10,即0000 1010(10的原码)   +   1000 1010 (-10的原码) = 1001 0100 (-20的原码),所以原码计算是不准确的;同样的反码也有类似的问题,如0000 1010(10的反码) +1111 0101(-10的反码)= 1111 1111(-0的反码),显然也是错误的,而补码就解决了这个问题,如 0000 1010(10的补码)+  1111 0110(10的补码)= 1 0000 0000  而只能储存八位,所以最高位就被舍弃了,就变成了0000 0000(0的补码)。

在Java中用的就是补码的运算。

00JAVA语法基础 原码、反码、补码的更多相关文章

  1. Java基础-原码反码补码

    Java基础-原码反码补码 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 注意,我们这里举列的原码和反码只是为了求负数的补码,在计算机中没有原码,反码的存在,只有补码. 一.原码 ...

  2. Java语法基础课 原码 反码 补码

    原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 反码的表示方法是:正数的反码是其本身:负数的反码是在其原码的基础上, 符号位不变,其余各个位取反. 补码的表示方法是在反码的基础 ...

  3. java基础知识-原码,反码,补码

    1.正数:原码,反码,补码:都一样. 2.负数:和正数的储存方式不同,负数都是以补码形式存储的. <1>负数的补码 把负数的原码除了符号位取反后再+1. <2>负数的原码 把对 ...

  4. 原码 & 反码 & 补码 & 详解

    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...

  5. C语言原码反码补码与位运算.

      目录:     一.机器数和真值     二.原码,反码和补码的基础概念     三.为什么要使用原码,反码和补码     四.原码,补码,反码再深入     五.数据溢出测试     六.位运算 ...

  6. Java 原码 反码 补码

    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...

  7. 「C语言」原码反码补码与位运算

    尽管能查到各种文献,亲自归纳出自己的体系还是更能加深对该知识的理解.     本篇文章便是在结合百度百科有关原码.反码.补码和位运算的介绍并深度借鉴了张子秋和Liquor相关文章后整理而出.   目录 ...

  8. 位移&二进制转换&原码&反码&补码

    << 左移 按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零. 格式 需要移位的数字 << 移位的次数 计算过程 1. 按二进制形式把所有的数字向左 ...

  9. java原码反码补码以及位运算

    原码, 反码, 补码的基础概念和计算方法. 对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式. 1. 原码 原码就是符号位加上真值的绝对值, 即 ...

随机推荐

  1. CUDA Pro:通过向量化内存访问提高性能

    CUDA Pro:通过向量化内存访问提高性能 许多CUDA内核受带宽限制,而新硬件中触发器与带宽的比率不断提高,导致带宽受限制的内核更多.这使得采取措施减轻代码中的带宽瓶颈非常重要.本文将展示如何在C ...

  2. 2019个嵌入式市场研究,持续的C/C++优势

    2019个嵌入式市场研究,持续的C/C++优势 2019 Embedded Markets Study reflects emerging technologies, continued C/C++ ...

  3. 深入Netty逻辑架构,从Reactor线程模型开始

    本文是Netty系列第6篇 上一篇文章我们从一个Netty的使用Demo,了解了用Netty构建一个Server服务端应用的基本方式.并且从这个Demo出发,简述了Netty的逻辑架构,并对Chann ...

  4. 【UG二次开发】装配设计

    与装配相关的术语 tag 部件或对象的标识,还可能是部件原型.实例和事例 piece part 单个部件 occurrence 部件或对象的事例,装配中的是部件事例 object occurrence ...

  5. 『心善渊』Selenium3.0基础 — 1、Selenium自动化测试框架介绍

    目录 1.Selenium介绍 2.Selenium的特点 3.Selenium版本说明 4.拓展:WebDriver与Selenium RC的区别 5.Webdriver工作原理 1.Seleniu ...

  6. Spring Cloud 和 Dubbo,到底用哪个好?

    Spring Cloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大 dubbo的开发难度较大,原因是dubbo的jar包依赖问题很多大型工程无法解决 sp ...

  7. 报错:vmnet8设置中出现错误。子网IP和子网掩码不一致

    报错:vmnet8设置中出现错误.子网IP和子网掩码不一致 设置子网IP时报错,如下图 同样的,写成192.168.0.0就没问题,如下图 总结: 这个虚拟网络编辑器是给添加网卡的,你添加vmnet8 ...

  8. c#根据名称反射对应的枚举类型

    今天遇到了要配置串口的停止位,这个时候直接反射枚举比较方便. 第一反射所有的枚举值 FieldInfo[] fieldInfoes= typeof(StopBits).GetFields(Bindin ...

  9. 玩转STM32MP157- 使用fbtft驱动 lcd st7735r

    什么是fbtft fbtft 在 github 中的介绍是" Linux Framebuffer drivers for small TFT LCD display modules,翻译过来 ...

  10. 4.13、nfs挂载优化及优缺点

    1.硬盘:sas/ssd磁盘,买多块,硬件raid5/raid0,网卡吞吐量要大,至少千兆(多网卡bond0) 2.nfs客户端挂载说明: 文件系统有自己的权限,挂载是建立在文件系统之上的,然后更改挂 ...