Tengo un montón de #define
en mi código. Ahora ha surgido un problema extraño.El valor de C define cambios inesperadamente
tengo esto:
#define _ImmSign 010100
(estoy tratando de simular un número binario)
Obviamente, espero que el número se convierta en 10100. Sin embargo, cuando se utiliza el número que se ha transformado en 4160.
¿Qué está pasando aquí? ¿Y cómo lo detengo?
ADICIONAL
bien, así que esto es debido a la lengua interpretar esto como una octal. Sin embargo, ¿hay alguna forma inteligente de forzar el lenguaje para interpretar los números como enteros? Si un 0 define octal y hexadecimal 0x define ahora que lo pienso ...
010100 en octal es 0 * 1 + 0 * 8 + 1 * 64 + 0 * 512 + 1 * 4096 = 64 + 4096 = 4160. –
http://www.boost.org/doc/libs/1_42_0/libs/utility/utility.htm#BOOST_BINARY Esto puede ser útil para usted. aunque C++, creo que es un preprocesador solo – Anycorn
@aaa thx por la sugerencia, pero no creo que se me permita usar una biblioteca de terceros. – NomeN