const unsigned char bits[]={1,2,4,8,16,32,64,128};
const char nbits=8;
void dump(const void* pobject,int size)
{
int i,j;
for(i=0;i<size;i++) {
for(j=nbits-1;j>=0;j--) {
if(((char *)pobject)[j] & bits[j])
printf("%c",'1');
else
printf("%c",'0');
}
if(i<size-1)
printf("%c",'|');
}
printf("\n");
}
...
unsigned int i;
for(i=0;i<10;i++)
dump((void *)(&i),sizeof(i));
выдает:
00000000|00000000|00000000|00000000
00000001|00000001|00000001|00000001
00000000|00000000|00000000|00000000
00000001|00000001|00000001|00000001
00000000|00000000|00000000|00000000
00000001|00000001|00000001|00000001
00000000|00000000|00000000|00000000
00000001|00000001|00000001|00000001
00000000|00000000|00000000|00000000
00000001|00000001|00000001|00000001
Почему?
Ответ на:
комментарий
от phoenix
Ответ на:
комментарий
от phoenix
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум avidemux падает при открытии h264 (2015)
- Форум Обнулить переменную (2008)
- Форум help. сетевые адреса в двоичном представлении. (2014)
- Форум Проблема с 64 битами (2006)
- Форум sizeof(class A) ? (2012)
- Форум Подскажите по С (2013)
- Форум Наследование QTimer (2005)
- Форум Покритикуйте функцию вывода шестнадцатеричного числа без использования %X, (2005)
- Форум C, про типы (2005)
- Форум Где/как покомпилить/позапускать для Itanium/powerpc/sparc? (2016)