二进制运算-十进制与二进制的转换

摘要:
在学习JDK源码和JAVA一些开源框架源码的时候经常会碰到位运算,要搞懂位运算就得弄明白二进制和十进制之间的转换一、十进制转换成二进制1.正整数转换成二进制十进制整数转换成二进制就是不停的除以二,直到不足二为止(0或者1),然后记录余数,从下往上排列出来就是二进制的值举个例子:5和8转换成二进制5的二进制为101,8的二进制为10002.负整数转换成二进制负整数转换成二进制,首先取得它绝对值的正数

在学习JDK源码和JAVA一些开源框架源码的时候经常会碰到位运算,要搞懂位运算就得弄明白二进制和十进制之间的转换

一、十进制转换成二进制

1.正整数转换成二进制

十进制整数转换成二进制就是不停的除以二,直到不足二为止(0或者1),然后记录余数,从下往上排列出来就是二进制的值

举个例子:5和8转换成二进制

二进制运算-十进制与二进制的转换第1张

5的二进制为101,8的二进制为1000

2.负整数转换成二进制

负整数转换成二进制,首先取得它绝对值的正数的二进制,然后取反(0变1,1变0),然后加1

举个例子:-5的二进制(32位计算机中)

第一步:5的二进制101,高位补0之后32位计算机中就是:00000000000000000000000000000101

第二步:取反,11111111111111111111111111111010 (反码)

第三步:加一,11111111111111111111111111111011 (补码)

如果你使用的是windows系统可以拿去验证,比如我是64位系统 -5的二进制是1111111111111111111111111111 111111111111111111111111111111111011

二进制运算-十进制与二进制的转换第2张二进制运算-十进制与二进制的转换第3张

3.小数转换成二进制

首先把整数部分转换成二进制,然后把小数位转换(小数为换算每次乘2,不足1为0),最后相加

举个例子:3.15的二进制

第一步:3的二进制11

第二步:0.15的二进制0.001,如图

二进制运算-十进制与二进制的转换第4张

第三步:相加得11.001

一、二进制转换成十进制

1.二进制转换成十进制整数

举个例子:

101的十进制和 1110的十进制

二进制运算-十进制与二进制的转换第5张二进制运算-十进制与二进制的转换第6张

2.二进制转换成十进制负数

-5的二进制是1111111111111111111111111111011,反码是00000000000000000000000000000100,加一是00000000000000000000000000000101,十进制就是5,取相反数则是-5

3.二进制转换成十进制整数

举个例子:3.15的二进制是11.001

二进制运算-十进制与二进制的转换第7张

免责声明:文章转载自《二进制运算-十进制与二进制的转换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇OpenCV白平衡算法之灰度世界法(消除RGB受光照影响)25 Zabbix系统数据表结构介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

计算机基础——位运算

位运算操作是由处理器支持的底层操作,因此运行速度很快。尽管现代计算机处理器拥有了更长的指令流水线和更优的架构设计,使得加法和乘法运算几乎与位运算一样快,但是位运算消耗更少的资源。 你可能经常在JDK源码中看到位运算操作,因此对位运算的掌握是有必要的。 举个例子,比如java.lang.Long的hashCode()方法: public static...

WEB开发中的字符集和编码

引言 我相信很多人在初接触编程时,都被字符集狠狠地虐过,特别是数据库的中文乱码问题,那么乱码是怎么产生的呢? 我们都知道计算机是以二进制存储和运行的,那么它是怎么把二进制数据转换为各种文字的呢? 还有我们常用的各种字符集,常用的编码转换,都是怎么进行的呢? 本博文所写的内容不是技术干货,只是对我们常用的字符集和编码的一个小总结,小科普。我相信读完本文,您应...

Java Android 二进制文件读写

https://blog.csdn.net/u012734708/article/details/88354539 1.读取android工程中本地二进制文件Android studio工程目录中有二进制文件abcd.raw 。二进制文件所放目录 app/src/main/assets/abcd.raw 1.1一次性读取二进制文件 private byte...

Node.js_Buffer 缓冲区

Buffer 缓冲区 虽然 JavaScript 支持未操作,但是并没有 二进制数据 的原生 node 引入了 Buffer 类,用于操作二进制数据 是 V8 引擎的扩展,实际上是对内存的直接分配 每个元素大小是 1 字节 创建了一个 Buffer 后,它的大小就固定了 一旦你把内容复制到一个 Buffer 后,它就会以二进制的形式存储起来。 如果你需要添...

温故知新-网络基础1-ip地址计算

网络地址换算 1、网络地址分类 A类:0.0.0.0到127.255.255.255   255.0.0.0/8   B类:128.0.0.0到191.255.255.255   255.255.0.0/16 C类:192.0.0.0到223.255.255.255  255.255.255.0/24 D类:224.0.0.0到239.255.255.25...

Apache Thrift系列(一):Thrift基本及IDL语法

一、Thrift介绍   Thrift是一个轻量级、跨语言的远程服务调用框架,最初由Facebook开发,后面进入Apache开源项目。主要包含三大部分:代码生成、序列化框架、RPC框架,相当于protoc + protobuffer + grpc,并且支持大量语言(C++、Go、Java、Python、PHP、Ruby等),是一套全栈式的RPC解决方案...