Skip to content

Instantly share code, notes, and snippets.

@guxiaobai
Last active October 30, 2017 15:04
Show Gist options
  • Select an option

  • Save guxiaobai/3b431bc6f2d8ca55964aef1cceabf8a8 to your computer and use it in GitHub Desktop.

Select an option

Save guxiaobai/3b431bc6f2d8ca55964aef1cceabf8a8 to your computer and use it in GitHub Desktop.
<?php
// 知识点
// 1. 二进制
// 2. 字节序
padding(2): a/A
4(2): h/H
8(2): c/C
16(4): s/S/n(Big)/v
32(4): l/L/N(Big)/V
i/I
// ----------------(4)--------------------------------------
// s -- 有符号短整数 (16位,主机字节序)
// S -- 无符号短整数 (16位,主机字节序)
// n -- 无符号短整数 (16位, 大端字节序)
// v -- 无符号短整数 (16位, 小端字节序)
// ------------------------------------------------------
$bin = 'abcd';
// 小端字节序
// 0: 25185(ab)
// 1: 25699(cd)
// 0: 0110_0010(b) 0110_0001(a)
// 1: 0110_0100(d) 0110_0011(c)
var_dump(unpack('v*', $bin));
echo base_convert('25185', 10, 2);
echo base_convert('25699', 10, 2);
// 大端字节序
// 24930
// 25444
// 0: 0110_0001(a) 0110_0010(b)
// 1: 0110_0011(c) 0110_0100(d)
var_dump(unpack('n*', $bin));
echo base_convert('24930', 10, 2);
echo base_convert('25444', 10, 2);
// --------------------(4)----------------------------------
// l -- 有符号长整数 (32位,主机字节序)
// L -- 无符号长整数 (32位,主机字节序)
// N -- 无符号长整数 (32位, 大端字节序)
// V -- 无符号长整数 (32位, 小端字节序)
// ------------------------------------------------------
$bin = 'abcd';
// 1633837924
var_dump(unpack('N*', $bin));
// 0110_0001(a) 0110_0010(b) 0110_0011(c) 0110_0100(d)
echo base_convert('1633837924', 10, 2);
// ------------------------------------------------------
// H -- 16进制字符串,高位在前以半字节为单位
// ------------------------------------------------------
$bin = 'abcd';
// 0x61(a) 0x62(b) 0x63(c) 0x64(d)
var_dump(unpack('H*', $bin));
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment