Вывести 1 байтовое целое число без знака в двоичном коде - C (СИ)
Формулировка задачи:
Решение задачи: «Вывести 1 байтовое целое число без знака в двоичном коде»
#include <stdio.h> main() { unsigned char x1 = 145; char x2 = -115; short int x3 = 1145; // 1) printf("1)\na)\t"); for(unsigned char y = 128, y1 = x1; y; y1%=y, y=y>>1) printf("%d ", y1/y); // a) printf("\nb)\t"); for(unsigned char y = 128; y; y=y>>1) printf("%d ", (x1&y)?1:0 ); //b) // 2) a) printf("\n\n2)\na)\t"); for(unsigned char y = 128, y2 = x2; y; y2%=y, y=y>>1) printf("%d ", y2/y); printf("\n \t"); for(unsigned char y = 128, y2 = (x2<0)?(-x2):x2; y; y2%=y, y=y>>1) printf("%d ", (x2<0 && y==128)?1:y2/y); printf("\n \t"); for(unsigned char y = 128, y2 = (x2<0)?(-x2):x2; y; y2%=y, y=y>>1) printf("%d ", (x2<0 && y==128)?1:!(y2/y)); // b) printf("\n\nb)\t"); for(unsigned char y = 128; y; y=y>>1) printf("%d ", (x2&y)?1:0 ); printf("\n \t"); for(unsigned char y = 128, y2 = (x2<0)?(-x2):x2; y; y=y>>1) printf("%d ", (x2<0 && y==128) ? 1 : ((y2&y)?1:0) ); printf("\n \t"); for(unsigned char y = 128, y2 = (x2<0)?(-x2):x2; y; y=y>>1) printf("%d ", (x2<0 && y==128) ? 1 : !((y2&y)?1:0) ); // 3) printf("\n\n3)\t"); for(unsigned short int y = 32768; y; y=y>>1) printf("%d ", (x3&y)?1:0 ); return 0; }
Объяснение кода листинга программы
Представленный код выполняет следующие действия: 1) Выводит двоичный эквивалент байтовых значений переменных x1, x2 в формате без знака. Для этого используется два вложенных цикла. Первый цикл перебирает все биты от старшего (наиболее значимого) к младшему (наименее значимому) и проверяет, является ли бит единицей или нулём. Если бит равен единице, то он выводит 1, если бит равен нулю, то он выводит 0. Второй цикл аналогичен первому, но он проверяет, является ли бит единицей или нулём и выводит 1, если бит равен единице. 2) Выводит двоичный эквивалент байтовых значений переменных x2 в формате с знаком и без знака. Для этого используется три вложенных цикла. Первый и второй циклы аналогичны первым двум циклам из первого пункта. Третий цикл проверяет, является ли бит единицей или нулём и выводит 1, если бит равен единице. 3) Выводит двоичный эквивалент короткого целого значения переменной x3 в формате без знака. Для этого используется один вложенный цикл. Цикл перебирает все биты от старшего (наиболее значимого) к младшему (наименее значимому) и проверяет, является ли бит единицей или нулём. Если бит равен единице, то он выводит 1, если бит равен нулю, то он выводит 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д