大端big endian,即高字节在前是什么意思
ipstr:array [0..31] of byte;
ip是32 32 32 2E 38 36 2E 32 30 37 2E 32 30 32
现在我要把IP的16进制存放到ipstr里,按照大端big endian,即高字节在前排序,未使用的数据位皆填0x00。
请教ipstr里的内容应该是什么样的呢????
[解决办法]
高字节在前排序是啥?
procedure TForm1.Button1Click(Sender: TObject);const ip='32 32 32 2E 38 36 2E 32 30 37 2E 32 30 32';var i,j:Integer; ipstr:array [0..31] of byte;begin ZeroMemory(@ipstr[0],sizeof(ipstr)); i:=0; j:=1; while j<length(ip) do begin ipstr[i]:=strtoint('$'+Copy(ip,j,2)); inc(i); inc(j,3); end;end;
[解决办法]
32位int是4个字节
0x12ab34ef在int的4个字节里的存放模式