java负数转换为二进制_负数与二进制换转方法
1、十进制负数转二进制
假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为: (因为java中int 是4个字节,所以高位需要补0,占够32位)
00000000 00000000 00000000 00000101
现在想知道,-5在计算机中如何表示?
在计算机中,负数以原码的补码形式表达。
什么叫补码呢?这得从原码,反码说起。
原码:一个正数,按照绝对值大小转换成的二进制数;一个负数按照绝对值大小转换成的二进制数,然后最高位补1,称为原码。
比如 00000000 00000000 00000000 00000101 是 5的 原码;10000000 00000000 00000000 00000101 是 -5的 原码。
反码:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。
取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)
比如:正数00000000 00000000 00000000 00000101 的反码还是 00000000 00000000 00000000 00000101 ;
负数10000000 00000000 00000000 00000101每一位取反(除符号位),得11111111 11111111 11111111 11111010。
称:10000000 00000000 00000000 00000101 和 11111111 11111111 11111111 11111010互为反码。
补码:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.
比如:10000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010。
那么,补码为:
11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011
所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。
再举一例,我们来看整数-1在计算机中如何表示。
假设这也是一个int类型,那么:
1、先取-1的原码:10000000 00000000 00000000 00000001
2、得反码: 11111111 11111111 11111111 11111110(除符号位按位取反)
3、得补码: 11111111 11111111 11111111 11111111
可见,-1在计算机里用二进制表达就是全1。16进制为:0xFFFFFF
主要知识点:
①正数的反码和补码都与原码相同。
②而负数的反码为对该数的原码除符号位外各位取反。
③负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1
下面是书上原文:
①原码表示法规定:用符号位和数值表示带符号数,正数的符号位用“0”表示,负数的符号位用“1”表示,数值部分用二进制形式表示。
②反码表示法规定:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。
③补码表示法规定:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.
④正零和负零的补码相同,[+0]补=[-0]补=0000 0000B。
2、符号位为1的二进制转十进制负数
相信大家已经知道如何个转法了,不过在此还是说明一下。
①除去符号位减1;
②除去符号位,按位取反;结果就是负数的源码;
③源码转成相应的十进制。
java负数转换为二进制_负数与二进制换转方法相关推荐
- java 负数存储结构_负数在java中的存储和读取过程 | 学步园
问题描述: 将-5存储在文本文件中,再读取出来显示到控制台; 预备知识: 1.在java中使用补码处理数字,而且byte(8)的数字在扩展成int(32)类型的时候,正数填充0,负数填充1; 2.负数 ...
- java求负数取模_负数参与取模运算
学习Python看到数值运算这部分,看到取模运算,原来不仅正数负数都可以取模,浮点数,甚至复数都可以取模: 对于x%y, 如果都是整数,则返回x/y的余数: 如果是浮点数,返回的是x - int(x/ ...
- c语言位运算负数的实例_负数位运算的右移操作-C语言基础
这一篇探讨的是"负数位运算的右移操作",涉及到数据的源码.反码.补码的转换操作.属于C语言基础篇. 先看例子 #include int main(void) { //正数的位右移 ...
- python负数取模_负数的取模运算
我们知道,在不同的语言中,对负数执行取模运算,结果有可能会是不同的.例如,(-11)%5在python中计算的结果是4,而在C(C99)中计算的结果则是-1. truncate除法 && ...
- mysql临时开启二进制_关于MySQL二进制日志Binlog的认识
MySQL的二进制日志可以说或是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是失误安全型的. 在 ...
- c++ 负数比较大小_负数的定义(二)
上期我们发现小学教材是通过"相反意义的量"引入负数,初中教材普遍是怎么样引入的负数我们来看看(看下图). 初中同样是从"相反意义的量"引入负数,有温度.增长率. ...
- 二进制_简单了解二进制
二进制 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一",借位规则是"借一当二",由18世纪德 ...
- python负数求余数_负数求余数 C 和 MatlabPython 处理不一样
在百度看到这个问题:http://zhidao.baidu.com/question/937487369300959012.html?oldq=1 用matlab和Python测试了下,发现都是这样: ...
- java request body内容_解读@RequestBody的正确使用方法
本文主要研究的是关于@RequestBody的正确使用方法的相关内容,具体如下. 最近在接收一个要离职同事的工作,接手的项目是用SpringBoot搭建的,其中看到了这样的写法: @RequestMa ...
最新文章
- 【开放书】《命令行数据科学指南(第二版)》
- 请举例解释@Required Annotation?
- 北京 | 阿里摩酷实验室 招聘 研究型实习生/社招
- 带你学习ES5中新增的方法
- sql server 2008安装图解
- 记录数据库内一条记录的更新时间
- python爬虫网页图片并保存到本地
- 记录一次es商品门店查询,关键字SearchSourceBuilder
- Django Book 2.0 翻译
- MyScript 手写识别数学公式、图形 自动计算
- php 简转繁体,PHP简体转繁体——MediaWiki-zhconvert
- markdown学习笔记(1):如何将.md文件转换为pdf
- Ubuntu下快捷方式图标存放位置
- 计算机和我的关系 论文参考文献,近几年计算机学生参考文献 计算机学生期刊参考文献哪里找...
- uniapp锚点定位
- org.apache.thrift.transport.TTransportException: SASL authentication not complete
- 微软在华十年:向中国倾斜
- qcon_从QCon San Francisco 2009中学到的重点知识和教训
- Java进阶之路~多态
- Web前端面试题(全锦集)