Java进制转换相关知识学习

举报
周小末天天开心 发表于 2022/11/18 10:19:29 2022/11/18
【摘要】 进制转换相关知识

前言:

        进制转换相关知识。

一、进制

(1)进制分类

        对于整型数据有四种进制表达方式,分别是:二进制、八进制、十进制和十六进制。计算机可以识别的进制为二进制。

(2)进制介绍

1)二进制:0,1,满 2 进 1 ,以0b或0B开头。

2)八进制:0 - 7,满 8 进 1,以数字0开头。

3)十进制:0 - 9,满 10 进 1。

4)十六进制:0 - 9 和 a - f 或 A - F,满 16 进 1,以0x或0X开头,a-f表示10-15

二、进制转换

(1)进制转换分组


1)第一组

十进制转二进制;十进制转八进制;十进制转十六进制。


2)第二组

二进制转十进制;八进制转十进制;十六进制转十进制。


3)第三组

二进制转八进制;二进制转十六进制。

4)第四组

八进制转二进制;十六进制转二进制。

(2)转换规则


1)任意进制转 十进制  (按权展开求和)

二进制转十进制方法:

        从最低位开始,将每个位上的数提取出来,乘以 2 的 位数-1 次方,然后求和。

八进制转十进制方法:

        从最低位开始,将每个位上的数提取出来,乘以 8 的 位数-1 次方,然后求和。

十六进制转十进制方法:

        从最低位开始,将每个位上的数提取出来,乘以 16 的 位数-1 次方,然后求和。

演示:

0b1101 = 1 * 2 ^ 0 + 0 * 2 ^ 1 + 1 * 2 ^ 2 + 1 * 2 ^ 3
       = 1 + 0 + 4 + 8 = 13
// 二进制转十进制
 
0234 = 4 * 8 ^ 0 + 3 * 8 ^ 1 + 2 * 8 ^ 2
       = 4 + 24 + 128  = 156
// 八进制转十进制
 
0x23B = 11 * 16 ^ 0 + 3 * 16 ^ 1 + 2 * 16 ^ 2
       = 11 + 48 + 512  = 571
// 十六进制转十进制

2)十进制转任意进制

十进制转二进制方法:

        将一个数数不断除以 2,直到商为 0 为止,然后将每次得到的余数倒过来,就是对应的二进制数。

十进制转八进制方法:

        将一个数数不断除以 8,直到商为 0 为止,然后将每次得到的余数倒过来,就是对应的二进制数。

十进制转十六进制方法:

         将一个数数不断除以 16,直到商为 0 为止,然后将每次得到的余数倒过来,就是对应的二进制数。

演示:

34 => 0b00100010
// 十进制转二进制
 
34 => 042
// 十进制转八进制
 
34 => 0x22
// 十进制转十六进制

3)二进制转八进制 和 二进制转十六进制

二进制转八进制方法:

        从低位开始,将二进制数每三位分成一组,转成对应的八进制数即可。

二进制转十六进制方法:

        从低位开始,将二进制数每四位分成一组,转成对应的十六进制数即可。

演示:

ob11010101 => ob11(3) 010(2) 101(5) => 0325
// 二进制转八进制
 
ob11010101 => 1101(D)  0101(5) => 0xD5
// 二进制转十六进制

4)八进制转二进制 和 十六进制转二进制

八进制转二进制方法:

        将八进制数的每 1 位,转成对应的一个 3 位的二进制数即可。

十六进制转二进制方法:

        将十六进制数的每 1 位,转成对应的一个 4 位的二进制数即可。

演示:

0237 => 0 3(011) 3(011) 7(111) => 0b11011111
// 八进制转二进制
 
0x23b => 0x 3(0011) 3(0011) b(1011) = 0b001100111011
// 十六进制转二进制
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。