记得之前学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中用的就是补码的运算。

最新文章

  1. tornado 反向代理后 获取真实客户端IP
  2. ci查询数据库
  3. How parse REST service JSON response
  4. Vimer的福音 新时代的Vim C++自动补全插件 clang_complete
  5. java JDK8 学习笔记——第13章 时间与日期
  6. gridview例子
  7. “-bash: svn: command not found”
  8. 使用aspose.word两句代码将word转换为pdf
  9. closest()一个在评论里很有用的函数
  10. 【ASP.NET MVC 学习笔记】- 17 Model验证
  11. HTML5学习知识点
  12. 【重学计算机】操作系统D6章:并发程序设计
  13. 微信报错 config:fail.Error:invalid signature
  14. WinDbg安装
  15. Ubuntu 18.10 版本发布
  16. 【Java】-NO.17.EBook.4.Java.1.014-【疯狂Java讲义第3版 李刚】- Annotation
  17. go-elasticsearch 来自官方的 golang es client
  18. SQL SERVER 压缩数据库日志文件
  19. Java的Reflection机制
  20. memcpy 的内存拷贝函数

热门文章

  1. NVIDIA DeepStream 5.0构建智能视频分析应用程序
  2. TOF摄像机可以替代Flash激光雷达吗?
  3. 利用UltraScale和UltraScale+FPGA和MPSOC加速DSP设计生产力
  4. .NET平台系列22:.NET Core/.NET5/.NET6 对比 .NET Framework
  5. vue3.0的变化
  6. 十、构建memcached服务
  7. org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element
  8. Golang学习(用代码来学习) - 第二篇
  9. 音视频点播服务基础系列(Fmpeg常用命令)
  10. [翻译]Go与C#对比 第三篇:编译、运行时、类型系统、模块和其它的一切