首页 > 代码库 > 进制间的相互转换

进制间的相互转换

我们的电脑中存储的是二进制的值,同样php可以进行相应的转换,那么通过简单的方法告诉大家,本博客只是学习时候的笔记

十转其他(2,8,16

 

规则:十进制数,除以目标进制。会得到余数和商。如果商不为零,继续使用商除以目标进制,取得余数和商。直到商为零,此时将所有的余数,从下倒上连接即可:


$int = 1234;
//10 to 8
//    1234
//       8
//     154    2
//       8
//      19    2
//       8
//       2    3
//       8
//       0    2
//
//

其他(2,8,16)转十

规则:使用每个数位上的数,乘以当前进制的权重次幂,让结果累加即可。

权重,从低位开始为0,向高位依次+1;


////10 to 16
//    1234
//      16
//      77    2
//      16
//       4    13(D)
//      16
//       0    4
//
//16 to 10
//权重:210
//      4D2
//4*16^2 + D*16^1 + 2*16^0
//=4*256 + 13*16 + 2*1
//=1024+208+2 = 1234
//
//8 to 10
//3210
//2322
//2*8^3 + 3*8^2 + 2*8^1 + 2*8^0

程序中的进制转换函数:

Dec,10

Bin,2

Oct,8

Hex,16

 

Decbin();10to2

Dechex();10 to 16

Octdec();8 to 10

例如:

函数的参数,期望的其实是字符串。


进制间的相互转换