dtb81443 2009-06-07 15:10
浏览 114
已采纳

PHP Bytes 2 DWord

I have an array:

$arr[0] = 95
$arr[1] = 8
$arr[2] = 0
$arr[3] = 0

That are bytes. I need a DWORD. I tried:

$dword = $arr[0]+$arr[1]*265+$arr[2]*265*265+$arr[3]*265*265*265;

Is that right or am I doing it wrong?

  • 写回答

4条回答 默认 最新

  • douyi1939 2009-06-07 15:14
    关注

    Try:

    $dword = (($arr[3] & 0xFF) << 24) | (($arr[2] & 0xFF) << 16) | (($arr[1] & 0xFF) << 8) | ($arr[0] & 0xFF);
    

    It can also be done your way with some corrections:

    $dword = $arr[0] + $arr[1]*0x100 + $arr[2]*0x10000 + $arr[3]*0x1000000;
    

    Or using pack/unpack:

    $dword = array_shift(unpack("L", pack("CCCC", $arr[0], $arr[1], $arr[2], $arr[3])));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法