СообЧа > База Знаний > Программирование > C, С++

Вопрос

Мне нужно перевести число(типа 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 Сообщество Чайников
Контактная информация