unsigned char *adata = (unsigned char*)malloc(500*sizeof(unsigned char));
unsigned char *single_char = adata+100;
¿Cómo cambio los primeros cuatro bits en single_char para representar valores entre 1..10 (int)?Cómo cambiar 4 bits en char sin signo?
La pregunta vino de estructura de la cabecera 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.
Por lo general, tiene un valor de 4..5, el valor char es como 0xA0.
En el caso específico de la cabecera TCP, los 4 bits más bajos de este octeto están reservados y deben ser cero. – caf
Ah bien, entonces su solución es mejor :) – GWW
@GWW, al final, fue su solución la que funcionó para mí. Pero ocasionalmente establece valores extraños ... (por ejemplo, single_char se convierte en hexadecimal 0x86 en lugar de 0x80). –