当前位置: 首页 > news >正文

四大进制--详解--以及进制转换规则

  • 进制介绍
    对于整数, 有四种表达方式:
  1. 二进制BIN: 0,1 , 满2进1.以0b或0B开头

所谓2进制就是使用0和1来表示一个数, 满2进1如果在开发中看到有这种写法: int n1 = 0b1010; 这种写法没有错, 这是二进制的一种表示方式

  1. 十进制DEC: 0-9, 满10进1

十进制就是0-9来表示一个数, 满10进1

  1. 八进制OCT: 0-7, 满8进1. 以数字0开头表示.

比如 int n3 = 01010; 代表它是用八进制来表示一个数的

  1. 十六进制HEX: 0-9及A(10)-F(15), 满16进1. 以0x或0X开头表示. 此处的A-F不区分大小写.

十六进制它是用0-9以及A(10)-F(15)来表示一个数的, 以0x或0X开头表示 比如A表示10, B表示11, C表示12, D表示13, E表示14, F表示15, 到了15过后16就没有了因为它满16进1

  • 举例说明
        int n1 = 0b1010; //二进制的表示方式int n2 = 1010; //十进制int n3 = 01010; //八进制int n4 = 0x10101; //0X10101 十六进制System.out.println("n1 =" + n1);System.out.println("n2 =" + n2);System.out.println("n3 =" + n3);System.out.println("n4 =" + n4);
  • 进制的图示
十进制十六进制八进制二进制
0000
1111
22210
33311
444100
555101
666110
777111
88101000

进制转换(基本功)

  • 进制转换介绍

第一组

  1. 二进制转十进制

规则:

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

案例:请将 0b1011 转成十进制的数
0b1011 = 1 * 2的(1-1)次方 + 1 * 2 的(2 - 1)次方 + 0 * 2的(3-1)次方 + 1 * 2的(4-1)次方 = 1 + 2 + 0 + 8 = 11

  1. 八进制转十进制

规则:

从最低位(右边)开始, 将每个位上的数提出来, 乘以8的(位数-1)次方,然后求和.

案例: 请将 0234 转成 十进制的数
0234 = 4 * 8 ^ 0 + 3 * 8 ^ 1 + 2 * 8^2= 4 + 24 + 128 = 156

  1. 十六进制转十进制

规则:

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

案例: 请将 0x23A 转成 十进制的数
0x23A = 10 * 16^0 + 3 * 16 ^ 1 + 2 * 16 ^ 2 =10 +48 + 64 + 512 = 570


第二组

  1. 十进制转二进制

规则:

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

案例: 请将 34 转成 二进制的数

34 = 34 ➗ 2 = 17 余数为 0 再将 17 ➗ 2 = 8 余数为1 再将 8 ➗2 = 4 余数为0 再将 2 除以 2 商1 余数为 0 然后反过来 为 = 0B100010 , 她一共有6位但是我们一个字节是我们存储的基本单位一个字节有8位所以在这里0B后还要再加两个0, 最终得到的二进制为0B00100010

  1. 十进制转八进制

规则:

将该数不断除以8, 直到商为0为止, 然后将每步得到的余数倒过来, 就是对应的八进制

案例: 请将 131 转成 八进制的数

131 ➗8 商为 16 余数为 3 , 再 ➗8 , 16 ➗ 8 商为 2 余数为0 最后得到的8进制的数为 0203

  1. 十进制转十六进制

规则:

将该数不断除以16, 直到商为0为止, 然后将每步得到的余数倒过来, 就是对应的十六进制

案例: 请将 237转成 十六进制的数

237➗16 商为 14 在16进制里 14对应的字母是E 余数为 13 , 在 16 进制里 13对应的字母是 D ,所以说结果是 0xED


第三组

  1. 二进制转八进制

规则:

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

案例: 请将 0b11010101 转成 八进制的数

每三个一组 101(5) => 为什么是5? 因为第一个1代表1 , 第二个1代表2, 第三个1代表四所以4加一等于五

010(2) => 0就是0 1为2 再一个0还是0所以为2

11(3)

结果为 0325

  1. 二进制转十六进制

规则:

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

案例: 请将 0b11010101 转成 十六进制的数

每四个一组 0101(5) => 0x

1101(13) => 13为D 所以 1101(D)

11(3)

结果为 0325


第四组

  1. 八进制转二进制

规则:

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

案例: 请将 0237 转成 二进制的数

02(010)3(011)7(111) = 0b10011111

  1. 十六进制转二进制

规则:

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

案例: 请将 0x23B 转成 二进制的数

0x2(0010)3(0011)B(1011) = 0b001000111011

http://www.lryc.cn/news/353551.html

相关文章:

  • 谈谈API和人工智能领域的开发和使用以及AI大模型开发进程。
  • 用Python Pygame做的一些好玩的小游戏
  • 【吊打面试官系列】Java高并发篇 - ThreadLocal 是什么?有什么用?
  • Spring MVC的数据转换及数据格式化:java 转换器接口(将一种类型的对象转换为另一种类型及其子类对象)
  • 【开源】多语言大型语言模型的革新:百亿参数模型超越千亿参数性能
  • DDL—表—数据类型—日期时间类型相关语法
  • Ant Design pro 6.0.0 搭建使用以及相关配置
  • Vue生命周期钩子是如何实现的
  • 002 仿muduo库实现高性能服务器组件_整体框架
  • 车道线识别与预警系统LDWS(代码+教程)
  • Python基础学习笔记(七)——元组
  • 安卓开发:相机水印设置
  • Excel工作表单元格单击选中事件,VBA动态数值排序
  • 数据结构~~链式二叉树
  • 线程池,日志
  • vue的图片上传
  • 题解 P1150
  • 牛客NC324 下一个更大的数(三)【中等 双指针 Java/Go/PHP/C++】参考lintcode 52 · 下一个排列
  • Vue3解决“找不到模块“@/components/xxx.vue”或其相应的类型声明”
  • nginx的Connection refused
  • Haskell 的高阶函数(Higher-order functions)
  • Unity websocket客户端
  • 每日一题——博弈论(枚举与暴力)
  • pytorch笔记:torch.nn.Flatten()
  • 一个人应该怎么操作抖音小店呢?店铺操作流程给你讲解清楚!
  • “等保测评与安全运维的协同:保障企业网络安宁
  • python抽取pdf中的参考文献
  • Java进阶学习笔记21——泛型概念、泛型类、泛型接口
  • 深入理解计算机系统 家庭作业4.55
  • 第二天-⑦前后端需要注意的事项