Java二进制、八进制、十进制、十六进制及其相互转换

Java二进制、八进制、十进制、十六进制及其相互转换

进制的基本介绍

所有数字在计算机底层都以二进制形式存在。

对于整数,有四种表示方式:
二进制(binary): 0,1 ,满2进1.以0b或0B开头。
十进制(decimal): 0-9 ,满10进1。
八进制(octal): 0-7 ,满8进1. 以数字0开头表示。
十六进制(hex): 0-9及A-F,满16进1. 以0x或0X开头表示。此处的A-F不区分大小写。
如: 0x21AF +1= 0X21B0

进制对照表

在这里插入图片描述

二进制

  1. Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位

原码、反码、补码简介

  1. 二进制的整数有如下三种形式:
  • 原码:直接将一个数值换成二进制数。最高位是符号位
  • 负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。
  • 负数的补码:其反码加1。

正数的原码、反码、补码都相同

  1. 计算机以二进制补码的形式保存所有的整数。

在这里插入图片描述
在这里插入图片描述

为什么要使用原码、反码、补码表示形式呢?

计算机辨别“符号位”显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了。

例如:
在这里插入图片描述

进制转换

1.二进制与十进制相互转换

二进制转十进制

二进制转成十进制乘以2的幂数

将十进制数连续除以2,直至商为0截止;然后将余数从后往前排列,即为二进制数

在这里插入图片描述

十进制转二进制

十进制转成二进制除以2取余数,然后逆序排列

将二进制数按权展开,相加即为十进制数
在这里插入图片描述

补充

8是2 ^ 3,16是2 ^ 4,二进制转八进制和十六进制可以利用其转换

2.二进制和八进制相互转换

二进制转八进制

在这里插入图片描述

八进制转二进制

在这里插入图片描述

3.二进制和十六进制相互转换

二进制转十六进制

在这里插入图片描述

十六进制转二进制

在这里插入图片描述

4.十进制转与八进制或者十六进制相互转换

十进制转八进制或者十六进制

十进制——二进制——八进制/十六进制
在这里插入图片描述

八进制或者十六进制转十进制

在这里插入图片描述

5.十六进制与八进制的相互转换

在这里插入图片描述

Java自带的进制转换

其他进制转换成十进制
//radix代表其他进制转为十进制
Integer.parseInt(String s, int radix);
十进制转换成其他进制

1.十进制转换为十六进制

Integer.toHexString(int i);

2.十进制转换为八进制

Integer.toOctalString(int i);

3.十进制转换为二进制

Integer.toBinaryString(int i);
发布了52 篇原创文章 · 获赞 68 · 访问量 7133

猜你喜欢

转载自blog.csdn.net/qq_42937522/article/details/105169148