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

c - Sắp xếp lại dữ liệu kiểu kép

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 23:58:36 25 4
mua khóa gpt4 Nike

Tôi đang cố gắng tạo một hàm trong C trên Windows lấy đầu vào là gấp đôi (8 byte) và trả về một hàm gấp đôi khác nhưng được sắp xếp lại, tức là đầu vào là B7...B0 và đầu ra là B0...B7. gây ra lỗi cho tôi khi xử lý dữ liệu int và double.

Tôi đã cân nhắc lấy giá trị đầu vào và tạo mặt nạ với byte cấp cao (0xFF), do đó tách 8 byte tạo nên giá trị đầu vào kép, sau đó ghép chúng theo thứ tự khác với thứ tự đầu vào để có được đầu ra kép của tôi như Yêu cầu của tôi được đặt hàng nhưng nó không hoạt động.

Mã này như sau:

ordena_lineal kép (tuyến tính kép)
{

// Recibo B7...B0 và devuelvo B0...B7
uint8_t B0,B1,B2,B3,B4,B5,B6,B7;
tuyến tính kép_cuối cùng;

B0 = tuyến tính&&0xFF;
B1 = (tuyến tính>>8)&&0xFF;
B2 = (tuyến tính>>8*2)&&0xFF;
B3 = (tuyến tính>>8*3)&&0xFF;
B4 = (tuyến tính>>8*4)&&0xFF;
B5 = (tuyến tính>>8*5)&&0xFF;
B6 = (tuyến tính>>8*6)&&0xFF;
B7 = (tuyến tính>>8*7)&&0xFF;

tuyến tính_cuối = (B7 | (B6 << 8) | (B5 << 8*2) | (B4 << 8*3) | (B3 << 8*4) | (B2 << 8*5) | (B1 << 8*6) | (B0 << 8*7))
trả về tuyến tính_cuối cùng;
}

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

Toán tử bitwise là bất hợp pháp trên các loại dấu phẩy động. Ngoài ra, khi bạn phân bổ lại các byte đã dịch chuyển tuyến tính_cuối cùng , bạn gán biểu thứcgiá trị, thay vì nóthể hiện.

Bạn cần sử dụngunion để thực hiện hành động bạn muốn.

liên kết double_bytes {
đôi d;
uint8_t b[sizeof(double)];
};

ordena_lineal kép (tuyến tính kép)
{
liên kết double_bytes src, dst;
src.d = tuyến tính;

for (int i = 0; i < sizeof(double); i++) {
dst.b[sizeof(double) - 1 - i] = src.b[i];
}

trả về dst.d;
}

Điều này cho phép bạn truy cập gấp đôi Biểu diễn đối tượng và thực hiện đặt bí danh theo cách tuân thủ tiêu chuẩn.

Về c - sắp xếp lại dữ liệu loại kép, 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/54466080/

25 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
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