进制转换| 学习笔记

简介: 快速学习进制转换。

开发者学堂课程【PHP 基础入门课程(上) :进制转换】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/709/detail/12591


进制转换

 

内容简介:

一、目标

二、概念

三、二进制转八进制或者十六进制

四、小结

 

一、目标

了解进制的原理,知道 PHP 中有进制转换的快捷函数。

 

二、概念

进制转换:

是指根据不同的进制要求,将原始数值(通常指整数)转换成目标进制。

•二进制与十进制互转

•二进制与八进制互转

•二进制与十六进制互转

•八进制与十进制互转

•八进制与十六进制互转

•十进制与十六进制互转

首先知道原始数据及其进制

从左往右依次编号:0开始

图片1.png

转换方案

1. 按位取出当前值

2. 找到当前对应的编号:如2

3、找到原始进制:如8进制

4、计算:值*进制^编号(幂)

5、所有位数求出后求和

求和3+16+64=83

 

三、二进制转八进制或者十六进制

•二进制转八进制:从右边开始依次取三位转换成十进制,将所有结果合并即可(三位二进制最大7二进制转八进制或者十六进制工

•二进制转八进制:从右边开始依次取三位转换成十进制,将所有结果合并即可(三位二进制最大7:111=>7)11111111=>11,111,111=>3,7,7=>377

•二进制转十六进制:从右边开始依次取四位转换成十进制,将所有结果合并即可(四位二进制最大15:111=>15==F)11111111=>1111,1111=>F,F=>FF

•八进制转二进制:每位数转换成三位的二进制,将所有结果合并即可

123=>1,2,3=>001,010,011=>00101011=> 101011(左侧的0可以忽略)

·十六进制转二进制:每位数转换成四位的二进制,将所有结果合并即可

123=>1,2,3=>0001,0010,0011 => 000100100011 => 100100011111=>7)11111111=>11,111,111=>3,7,7=>377

•二进制转十六进制:从右边开始依次取四位转换成十进制,将所有结果合并即可(四位二进制最大15:111=>15==F)11111111=>1111,1111=>F,F=>FF

•八进制转二进制:每位数转换成三位的二进制,将所有结果合并即可

123=>1,2,3=>001,010,011=>00101011=> 101011(左侧的0可以忽略)

•十六进制转二进制:每位数转换成四位的二进制,将所有结果合并即可

123=>1,2,3=>0001,0010,0011 => 000100100011 => 100100011

简化

在 PHP 中,已经考虑到业务的需求,所以 PHP 提供了一系列函数来实现各类进制转换,以十进制为基准

•bindecI 二进制转十进制

•decbin:十进制转二进制

•decoct:十进制转八进制

•octdec:八进制转十进制

•dechex:十进制转十六进制

•hexdec:十六进制转十进制

#示例:十六进制转十进制

hexdec(' 123'); #结果:291

 

四、小结

1、进制转换原理可以以10进制为基准互转

2、PHP 提供了一套以十进制为基准的转换函数,利用十进制与其他进制组合成单词即可实现函数转换

•八进制:oct

•十进制:dec

•十六进制:hex

•二进制:bin

相关文章
|
7月前
进制学习3
进制学习3
26 1
|
10月前
进制转换_全
进制转换_全
|
5月前
|
存储
【二进制转换】十进制 转 二进制 (含相关题型)
【二进制转换】十进制 转 二进制 (含相关题型)
27 0
|
10月前
|
存储 Java 数据处理
【JavaSE专栏25】进制转换的那些事,十进制转R进制、R进制转十进制是什么操作?
【JavaSE专栏25】进制转换的那些事,十进制转R进制、R进制转十进制是什么操作?
104 0
|
小程序
ABCDEFG(进制转换::小转大)
ABCDEFG(进制转换::小转大)
63 0
|
JavaScript
进制转换的那些事儿
进制转换的那些事儿
88 0
|
JavaScript 前端开发 数据安全/隐私保护
进制转换以及位运算
进制转换以及位运算
119 0
进制转换以及位运算
进制转换详解
进制转换详解
270 0
进制转换详解