Xem Array#pack.
[1024].pack("n")
Số này bao gồm số thứ tự byte mạng thứ tự \x04\x00
.
Cách này hoạt động là mỗi byte là 8 bit nhị phân. 1024 ở dạng nhị phân là 10000000000
. Nếu chúng ta chia nhỏ thành tám octet 8 (8 bit mỗi byte), chúng ta sẽ nhận được: 00000100 00000000
.
Một byte có thể biểu thị (2 trạng thái)^(8 vị trí) = 256 giá trị duy nhất. Tuy nhiên, vì chúng ta không có 256 ký tự ascii có thể in, chúng ta biểu thị byte dưới dạng cặp thập lục phân, vì chữ số thập lục phân có thể đại diện cho 16 giá trị khác nhau và 16 * 16 = 256. Vì vậy, chúng ta có thể lấy byte đầu tiên, 00000100
và ngắt nó thành hai tứ giác thập lục phân là 0000 0100
. Dịch nhị phân sang hex cung cấp cho chúng tôi 0x04
. Byte thứ hai là tầm thường, như 0000 0000
là 0x00
. Điều này cho chúng ta biểu diễn hệ thập lục phân của chúng ta về chuỗi hai byte.
Cần lưu ý rằng vì bạn bị giới hạn ở tiêu đề 2 byte (16 bit), bạn bị giới hạn ở giá trị tối đa là 11111111 11111111
hoặc 2^16 - 1 = 65535
byte. Bất kỳ thông báo nào lớn hơn thông điệp không thể đại diện chính xác chiều dài của nó theo hai byte.
Nguồn
2012-12-10 04:14:06