Miguel:
eso sería 0x0a (hexadecimal)
mi impresión es que solo puedes almacenar información, minimamente como
1 byte (char),. o séa 8-bits, 2 hexadecimales.
lo siguiente sería como almacenar medio byte:
invalid suffix "b1010" on integer constant
cualquier entero usa minimo 4 bytes en arquitecturas nuevas.
haciendo operaciones
suponiendo que quieres almacenar valores binarios en 4 bytes (int)
generas mascaras de 64 bits
int i;
unsigned long long int bit[i];
unsigned long long valbit;
for(i=0;i<64;i++) {
unsigint=(unsigned long long int) 1;
bit[i]=(unsigint<<i); /*mascara para cada uno de los 64 bits*/
valbit=0 | bit[i]; /*operacion OR binaria*/
printf("i=%d %lld \n",i,valbit); /* para ver que si, lo está haciendo*/
}
para empaquetar los valores binarios, haces como sigue con las mascaras
bit[i]:
int s[10][64]; /* arreglo de 640 valores binarios muy eficiente ;) */
FILE *condinit;
...
for(cuenta=0;cuenta<10;cuenta++){
for(kk=0;kk<64;kk++) {
fscanf(condinit,"%f\n",&tempfloat);
if(tempfloat==1.0) s[cuenta2]=s[cuenta] | bit[kk]; /*empaqueta
un 1 o deja el cero con OR y mascara*/
}
}
...
saludos,
Joel
:)
Miguel Cardenas wrote:
Hola
A proposito del encoder para base64, al probarlo me encontre con algo raro,
resulta que necesito hacer algunas operaciones a nivel bit pero no me funcionan
las constantes binarias...
Si especifico algo como 01010 me lo toma como numero OCTAL, segun San Google
debo usar la notacion 0b1010 o 0B1010 para el GCC pero pura madre no es cierto,
al compilar me dice:
invalid suffix "b1010" on integer constant
Mi pregunta es: como jijos del maizal hago para introducir CONSTANTES BINARIAS
en GCC? siguiendo todos los articulos que me regresan google es 0b+xxxxxx pero
no es cierto, al menos en mi GCC 4.2.3
Gracias y saludos