Вопрос
Мне нужно перевести число(типа int) из десятичной системы исчисления в ДВОИЧНУЮ, стандартных функций я не нашел кроме Setbase — которая не переводит в двоичную систему (в этой версии точно не переводит). Подскажите пожалуйста, может быть есть универсальный алгоритм (функция). Я об этом думал и возникает другой вопрос: если число перевести в двоичную систему, то какой тип данных будет относится к двоичному числу (может его записать в строку (массив char)?
Ответ
int — это и есть тип данных, в котором хранится целое двоичное число в два байта. То есть 16-и битное число.
Над ним можно делать двоичные операции операции и выводить на экран :
#include <stdio.h>
void printfbin(int c,int n) { if (n>1) { n-=1;
printfbin(c/2,n);
} printf("%d",c%2);
} void main(void) { int c;
c = 255;
// 255 = 0000 0000 1111 1111 printfbin(c,16);
printf("\n");
c = 256;
// 256 = 0000 0001 0000 0000 printfbin(c,16);
printf("\n");
c = c|255;
// 256 or 255 = 0000 0001 1111 1111 printfbin(c,16);
printf("\n");
c = c&15;
// 0000 0001 1111 1111 and 0000 0000 0000 1111 = 1111 printfbin(c,16);
}
Если же вам все-таки нужно создать особый тип данных, где можно было бы легко добраться до каждого бита, то можно создать массив и использовать аналогию prinfbin.
Из конференции Expert_FAQ
Copyright 2000-2004 Сообщество Чайников
Контактная информация