Как задать число в двоичном виде на C
Нужна программа для сверки таблицы истинности 
В конце это все должно быть выведено через плату и я не понимаю как это надо сделать Как задать число в двоичной форме?
Ответы (2 шт):
Если компилятор у вас относительно новый, поддерживающий C++14 (или GCC), то вот так:
int b = 0b101010; //это 42 в десятичной
В противном случае, наиболее распространенная практика - перевести число в шестнадцатеричную систему счисления и задать его.
int h = 0x2A; // это тоже 42
Обратите внимание на префиксы 0b и 0x - именно они сообщают компилятору, что далее за ними следут цифры числа в двоичной или шестнадцатеричной системе счисления соответственно
Для перевода двоичного числа в шестнадцатеричную систему счисления заметим, что один разряд шестнадцатеричной системы соответствует ровно четырем разрядом двоичной системы. Таким образом, можно составить себе табличку, а которой будет 16 строк вида
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
далее, режете ваше число на четверки бит справа налево и записываете цифры шестнадцатеричного числа:
1100 0101 = С5
Также для перевода можно использовать калькулятор windows в режиме "Программист":

В Си пока нет бинарной записи чисел. Пока можно попробовать макросами такое задавать. А если константные числа не нужны, тогда функцией можно обойтись.
// gcc -Wall -Wextra -Wpedantic -std=c11 binnum.c -o binnum
# define BIN2( X1 , X0 ) (((X1)<<1)|(X0))
# define BIN4( X3 , X2 , X1 , X0 ) ((BIN2(X3,X2)<<2)|BIN2(X1,X0))
# define BIN8( X7 , X6 , X5 , X4 , X3 , X2 , X1 , X0 ) \
((BIN4(X7,X6,X5,X4)<<4)|BIN4(X3,X2,X1,X0))
# include <stdio.h>
unsigned int bin32(char const * s){
unsigned int r = 0 ;
while ( * s ) {
r <<= 1 ;
if ( ( * s ) == '1' )
r |= 1 ;
++ s ; }
return r ; }
int main(){
printf("10101010 = %u\n",BIN8(1,0,1,0,1,0,1,0));
printf("10101010 = %u\n",bin32("10101010"));
}
$ ./binnum
10101010 = 170
10101010 = 170