unsigned char *adata = (unsigned char*)malloc(500*sizeof(unsigned char));
unsigned char *single_char = adata+100;
single_charの最初の4ビットを1.10(int)の値に変更するにはどうすればよいですか?unsigned charの4ビットを変更するには?
質問はTCPヘッダの構造から来た:
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.
通常それが4..5の値を持つ、char型の値が0xA0をのようなものです。
の誰かを助けるホープ、このオクテットの下位4ビットは予約され、ゼロでなければなりません。 – caf
ああ、あなたのソリューションは良いです:) – GWW
@GWW、最後に、それは私のために働いたあなたのソリューションでした。しかし時には奇妙な値を設定します(たとえば、single_charは0x80の代わりに16進数の0x86になります)。 –