cuốn sách gpt4 ai đã làm

Chuyển đổi thứ tự byte mạng (endian lớn) sang endian nhỏ

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 10:36:53 hai mươi bốn 4
mua khóa gpt4 Nike

tôi đến từ MSDN Chức năng sau đây được tìm thấy trong dài không dấu Chuyển đổi từ byte mạng sang thứ tự byte máy chủ dài không dấu, nghĩa là, được định nghĩa trong little-endian là:

u_long WSAAPI ntohl(
_In_u_long netlong
);

Tài liệu MSDN cho biết nó có thể chuyển đổi số 32 bit. Nhưng vì trong C++, khi tôi đọc dàiint là khác nhau, đó là dài không được đảm bảo là 32 bit hoặc có cùng kích thước với số nguyên INT_MAX.

Vì vậy, tôi tự hỏi liệu có hàm tương tự nào nhận giá trị 32 bit hay không, như int không dấu thay vì dài không dấu?

câu trả lời hay nhất

documentationđặc biệt chỉ ra ntohl của lưới dài Tham số là giá trị 32 bit:

netlong [đầu vào]

Một số 32 bit theo thứ tự byte mạng TCP/IP.


Tôi đã đọc rằng long và int không giống nhau, tức là long không được đảm bảo là 32 bit hoặc cùng kích thước của số nguyên INT_MAX.

Bạn nói đúng - trongC++ tiêu chuẩn ở giữa,dài Đúng không được đảm bảocó thể có kích thước cụ thể bất kỳ, nhưng nó phảiÍt nhất 32 bit.

Tuy nhiên, vì chúng ta đang nói về các hàm chuyển đổi endian nên những gì chúng ta thảo luận ở đây là dành riêng cho nền tảng. Bây giờ chúng ta cần hiểu sâu sắc thế nào là dài Dưới Windows. Trong Windows, rất dài là 32-bit :

dài

Số nguyên có dấu 32 bit. Phạm vi là –2147483648 đến 2147483647 số thập phân. Loại này được khai báo trong WinNT.h như sau:

typedef dài DÀI;

Về c++ - chuyển đổi thứ tự byte mạng (endian lớn) sang endian nhỏ, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/21143877/

hai mươi bốn 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress