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


Responder a