Tôi có một unsigned int số (2 byte) và tôi muốn chuyển đổi nó để unsigned char loại. Từ tìm kiếm của tôi, tôi thấy rằng hầu hết mọi người khuyên bạn nên làm như sau:C - unsigned int để unsigned char mảng chuyển đổi
unsigned int x;
...
unsigned char ch = (unsigned char)x;
Phương pháp tiếp cận phù hợp? Tôi yêu cầu bởi vì unsigned char là 1 byte và chúng tôi đúc từ 2 byte dữ liệu đến 1 byte.
Để tránh mất dữ liệu, tôi muốn tạo một mảng char chưa ký [] và lưu các byte riêng lẻ vào mảng. Tôi đang mắc kẹt tại như sau:
unsigned char ch[2];
unsigned int num = 272;
for(i=0; i<2; i++){
// how should the individual bytes from num be saved in ch[0] and ch[1] ??
}
Ngoài ra, cách chúng tôi sẽ chuyển đổi các char unsigned [2] trở lại unsigned int.
Cảm ơn rất nhiều.
có thể trùng lặp của [ký tên ngắn thành byte trong C++] (http://stackoverflow.com/questi/10288109/signed-short-to-byte-in-c) –