php 中进制转换,学习猿地-PHP 中的进制之前的处理,转换。

前言

本文参阅:《PHP 经典实例》

进制转换

base_convert()

该函数将一个字符(表示采用某种进制的一个数)正确地转换为采用另一种进制标识这个数的字符串。它适用于从 2-36 的所有进制之间的转换。对于超过10的进制,使用字母 a-z 作为附加符号。第一个参数是要转换的数,后两个参数分别是它当前的进制和要转换的进制。

$hex = 'a1'; //十六进制

$decimal = base_convert( $hex,16,10 ) //转换位10进制

除此之外,还有一些专门用来转换某2个进制之间的函数。

二进制 十进制

$a = bindec(11011); // 二进制转十进制 27

$b = decbin(27); //十进制转换位二进制 11011

八进制 十进制

$a = octdec(33); //八进制转换位十进制 27

$b = decoct(27) //十进制转为八进制 33

十六进制 十进制

$a = hexdec('1b'); // 十六进制转为十进制 27

$b = dechex(27); // 十进制转为十六进制 1b

总结

二进制 :bin

十进制 :dec

八进制 :oct

十六进制 :hex

可以看到转换的函数是拼接而成的。

需要指出,转换位十进制的特殊函数会返回整数,从十进制转为其他进制数的函数将返回字符串!!!

printf

printf() 系列函数,他允许将十进制数转换位二进制,八进制和十六进制数。而且允许设置多种不同格式,如前导为0,另外对于十六进制还可以选择使用大写或小写字母。

比如打印 html 的颜色值,可以使用 %02X 格式指示符。

sprintf( '#%02X%02X%02X', 0, 102,204 );

允许的格式:

%% - 返回一个百分号 %

%b - 二进制数

%c - ASCII 值对应的字符

%d - 包含正负号的十进制数(负数、0、正数)

%e - 使用小写的科学计数法(例如 1.2e+2)

%E - 使用大写的科学计数法(例如 1.2E+2)

%u - 不包含正负号的十进制数(大于等于 0)

%f - 浮点数(本地设置)

%F - 浮点数(非本地设置)

%g - 较短的 %e 和 %f

%G - 较短的 %E 和 %f

%o - 八进制数

%s - 字符串

%x - 十六进制数(小写字母)

%X - 十六进制数(大写字母)

附加的格式值。必需放置在 % 和字母之间(例如 %.2f):

+ (在数字前面加上 + 或 - 来定义数字的正负性。默认情况下,只有负数才做标记,正数不做标记)

' (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。例如:%'x20s(使用 "x" 作为填充))

- (左调整变量值)

[0-9] (规定变量值的最小宽度)

.[0-9] (规定小数位数或最大字符串长度)

PHP变量的秘密

$a = 100; // php 会认为是十进制。

$b = 0144; // php 会认为是八进制

$c = 0b1100100; //php 会认为是二进制

$d = 0x64; // php 会认为是十六进制

上面4个变量在 php 里是相等的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值