unsigned char *adata = (unsigned char*)malloc(500*sizeof(unsigned char));
unsigned char *single_char = adata+100;
Làm cách nào để thay đổi bốn bit đầu tiên trong single_char để biểu thị các giá trị giữa 1,10 (int)?Làm thế nào để thay đổi 4 bit trong unsigned char?
Câu hỏi đặt ra xuất phát từ cấu trúc TCP header:
Data Offset: 4 bits
The number of 32 bit words in the TCP Header. This indicates where
the data begins. The TCP header (even one including options) is an
integral number of 32 bits long.
Thông thường nó có giá trị của 4..5, giá trị char là như 0xA0.
Trong trường hợp cụ thể của TCP header, thấp hơn 4 bit của octet này được dành riêng và phải bằng không. – caf
Ah okay, sau đó giải pháp của bạn là tốt hơn :) – GWW
@ GW, cuối cùng, đó là giải pháp của bạn mà làm việc cho tôi. Nhưng nó đôi khi đặt giá trị lạ .. (ví dụ, single_char trở thành hex 0x86 thay vì 0x80). –