已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > Python > 讨论/求助

标题: 求将这一段Python转成php

作者: @Ta

时间: 2020-12-19发布,2020-12-19修改

点击: 4268

def RBIT(num):
    result = ''
    tmp_string = bin(num)[2:]
    while len(tmp_string) < 8:
        tmp_string = '0' + tmp_string
    for i in range(0, 8):
        result = result + tmp_string[7 - i]
        print(result)
    return int(result, 2)

[隐藏样式|查看源码]


『回复列表(4|隐藏机器人聊天)』

2. 帮你手动 @老虎会游泳
(/@Ta/2020-12-19 16:12//)

3.

@幕后导演

第14行可以注释掉

我才发现这是将数字转换为二进制,然后取反就可以了,如果偏要根据上述代码转换,那么就是以下代码

<?php
function rbit($num)
{
    $result = '';
    $bin = decbin($num) . '';//转换为二进制,并强制转换为string类型

    //不足8位数最前面补零
    while (strlen($bin) < 8) {
        $bin = "0{$bin}";
    }

    foreach (range(0, 8) as $k => $v) {
        $result = $result . '' . $bin{7 - $k};
        printf("%s\n", $result);//这行可以注释掉
    }

    return $result;
}


echo rbit(1234);

运行结果:

C:\Users\chuwen\Desktop>php 22222.php
0
01
010
0101
01011
010110
0101100
01011001
010110010
010110010

一步到位方法

但是运行结果我比较纳闷,和上面的代码运行结果不一样,自测把,顺便 @老虎会游泳 解释下

<?php
function rev_bin($num)
{
    //使用  decbin 函数 把数字转换成二进制  (这个函数输出的类型为 string)
    //然后使用 strrev 函数,将字符串取反    strrev 函数需要传入的参数未 stieng 类型
    return strrev(decbin($num));
}
(/@Ta/2020-12-19 16:41//)

4. @NowTime,运行结果是对的,但是我想循环数组去转换该怎么弄
$str = '18 186 216 111 63 247 114 14 224 176 181 204 36 251 244 167 217 76 149 182 149 6 195 20 63 247 114 14 224 176 181 204 36 251 244 167 217 76 149 87';
$num = explode(' ', $str); 
(/@Ta/2020-12-19 19:55//)

5. @NowTime,已经解决了,感谢兄弟
(/@Ta/2020-12-19 20:03//)

回复需要登录

6月29日 16:06 星期天

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1