Red de conocimientos sobre prescripción popular - Conocimiento dental - Cómo utilizar la función sprintf para convertir un entero sin signo de un solo byte en una cadena, como convertir el byte 0x96 en 150 en lugar de -106.

Cómo utilizar la función sprintf para convertir un entero sin signo de un solo byte en una cadena, como convertir el byte 0x96 en 150 en lugar de -106.

char a = 0x96

/* es el binario 1001 0110 convertido en un número entero. Los cuatro bytes son el complemento a 24 de los 32 bits anteriores, que es 1.

1111 1111 1111 1111 1111 65438 0111 1001 0110

Entonces, cuando un número negativo se convierte en un número entero, sumar uno al número negativo es 011010, es decir -(2 2 3 2 5 2 6)= -(1 8 32 64)=-65434.

Para obtener el decimal 150, los primeros 24 bits deben convertirse a 0.

Por lo tanto, se puede combinar con 0000 0000 0000 0000 0000 0000 1111111, que es 0x ff en operación hexadecimal

*/

printf("d \ n ", a amp0x ff); //El resultado en este momento es 150.

Cambie su ejemplo a:

char a = 0x96

charge buffer[50];

sprintf(buffer , " d " , un amp0x ff);