php怎么把一个整数拆成高4位低4位。8bytes的数组???

z109876543210 2016-10-27 12:45:51
php怎么把一个整数拆成高4位低4位。8bytes的数组???
...全文
217 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2016-10-28
  • 打赏
  • 举报
回复
那直译就是了
$n = 1234567;
$r[] = $n & 0x80;
$r[] = $n & (1<<16);
$r[] = $n & (1<<5);
$r[] = $n & (1<<4);
$r[] = $n & (1<<3);
$r[] = $n & (1<<8);
print_r($r);
Array
(
    [0] => 128
    [1] => 0
    [2] => 0
    [3] => 0
    [4] => 0
    [5] => 0
)

傲雪星枫 2016-10-27
  • 打赏
  • 举报
回复

$n = 100;
$b = decbin($n);
$s = (string)$b;

echo '高位:'.substr($s,0,-4).PHP_EOL;
echo '低位:'.substr($s,-4).PHP_EOL;
z109876543210 2016-10-27
  • 打赏
  • 举报
回复
java的代码是这样的 1234567 & 0x80 1234567 & (1<<16) 1234567 & (1<<5) 1234567 & (1<<4) 1234567 & (1<<3) 1234567 & (1<<8)
xuzuning 2016-10-27
  • 打赏
  • 举报
回复
高4位低4位 是什么意思? 难道是这样?
$n = 1234567;
$a = unpack('C*', pack('l', $n));
foreach($a as $v) {
  $r[] = ($v % 0xf0) >> 4;
  $r[] = $v % 0x0f;
}
print_r($r);
Array
(
    [0] => 8
    [1] => 0
    [2] => 13
    [3] => 4
    [4] => 1
    [5] => 3
    [6] => 0
    [7] => 0
)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧