虎绿林HU60.CN
发现版块
Enter
发布登录
发现版块发布我的社区荣誉
登录
虎绿林让技术讨论持续生长京ICP备18041936号-1

16进制转2进制

NowTime
2021年1月30日 · 2021年1月30日编辑讨论/求助
3万 6

此贴终结

没想到 MAC 地址是 48 位的,如果想到了就知道怎么做


有以下 MAC 地址

00-60-08-52-F9-D8

需要转换为2进制

我使用 PHP base_convert() 函数转换:

echo base_convert('00-60-08-52-F9-D8', 16, 2);

//运行得到的结果是
110000000001000010100101111100111011000

//为了方便观察,每隔4个数字加一个空格
110 0000 0000 1000 0101 0010 1111 1001 1101 1000

但是我很疑问,为什么别人的转换结果是这样的

@老虎会游泳,看橙色方框内容即可
Snipaste_2021-01-30_21-36-28.jpg

登录后收藏
楼层讨论

6 条回复

默认正序
老虎会游泳2021年1月30日
#1

@NowTime,你从右往左看就懂了
base_convert用于转换数字,既然是数字,自然不应该有前导0。

NowTime2021年1月30日
#2

@老虎会游泳,那我手动补 0 可以吗

老虎会游泳2021年1月30日
#3

@NowTime,你补补看不就知道了

NowTime2021年1月30日
#4

@老虎会游泳,补足48位就看可以吧

echo '补',48-strlen('110000000001000010100101111100111011000'). '个0';
老虎会游泳2021年1月30日
#5

@NowTime,用str_pad补
类型用STR_PAD_LEFT

NowTime2021年1月30日
#6

@老虎会游泳,又学习到一个新函数

echo str_pad('110000000001000010100101111100111011000', 48, '0', STR_PAD_LEFT);
加入这场讨论登录后即可参与讨论
登录并回复
关于作者NowTime

个人博客:https://NowTime.cc

查看用户主页
帖子信息
发布于2021/01/30 21:37
最后更新2021/01/30 21:52
阅读3万