00JAVA语法基础 原码、反码、补码
2024-09-29 23:08:16
记得之前学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中用的就是补码的运算。
最新文章
- tornado 反向代理后 获取真实客户端IP
- ci查询数据库
- How parse REST service JSON response
- Vimer的福音 新时代的Vim C++自动补全插件 clang_complete
- java JDK8 学习笔记——第13章 时间与日期
- gridview例子
- “-bash: svn: command not found”
- 使用aspose.word两句代码将word转换为pdf
- closest()一个在评论里很有用的函数
- 【ASP.NET MVC 学习笔记】- 17 Model验证
- HTML5学习知识点
- 【重学计算机】操作系统D6章:并发程序设计
- 微信报错 config:fail.Error:invalid signature
- WinDbg安装
- Ubuntu 18.10 版本发布
- 【Java】-NO.17.EBook.4.Java.1.014-【疯狂Java讲义第3版 李刚】- Annotation
- go-elasticsearch 来自官方的 golang es client
- SQL SERVER 压缩数据库日志文件
- Java的Reflection机制
- memcpy 的内存拷贝函数
热门文章
- NVIDIA DeepStream 5.0构建智能视频分析应用程序
- TOF摄像机可以替代Flash激光雷达吗?
- 利用UltraScale和UltraScale+FPGA和MPSOC加速DSP设计生产力
- .NET平台系列22:.NET Core/.NET5/.NET6 对比 .NET Framework
- vue3.0的变化
- 十、构建memcached服务
- org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element
- Golang学习(用代码来学习) - 第二篇
- 音视频点播服务基础系列(Fmpeg常用命令)
- [翻译]Go与C#对比 第三篇:编译、运行时、类型系统、模块和其它的一切