Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Hệ điều hành Unix] Byte order: htons (16-bit)

    Byte order và hàm htons

    Trên mạng, dữ liệu nhiều byte được truyền theo network byte order = big-endian (byte trọng số cao đứng trước). Đa số CPU (x86) lưu theo little-endian. Hàm htons (host-to-network short) hoán đổi 2 byte của một số 16-bit.

    Với số 16-bit có giá trị v, byte cao là v >> 8, byte thấp là v & 0xFF. Hoán đổi: ((v & 0xFF) << 8) | (v >> 8).

    Ví dụ

    Vào: 256 → 256 = 0x0100. Hoán đổi 2 byte → 0x0001 = 1.

    • Định dạng đầu vào:

      Một dòng chứa số nguyên v (0 ≤ v ≤ 65535).

    • Ràng buộc đầu vào:

      0 ≤ v ≤ 65535.

    • Định dạng đầu ra:

      Một dòng: giá trị 16-bit sau khi hoán đổi byte (htons).

    Ví dụ:

    Đầu vào:

    256
    

    Đầu ra:

    1

    Giải thích:

    256 = 0x0100, hoán đổi 2 byte thành 0x0001 = 1.

    Đang tải editor...