Формирование символьной строки, что соответствует двоичному коду - C (СИ)
Формулировка задачи:
Всем добрый день, прошу помочы с программой:
Условие:
Разработать функцию, которая формирует символьную строку, что соответствует двоичному коду заданного ДЛИННОГО целого беззнакового числа
Вот что у меня получилось:
Заранее спасибо)
#include <stdio.h> main() { long long int i, p; char temp; system("cls"); printf("vvedite p:(p < 32256) \n"); scanf("%d",&p); for(i = p; i <= p; i++) { p = i; printf("%d\t", i); while(p > 0) { printf("%d ", p % 2); p /= 2; } printf("\n"); temp = p; printf("%c",temp); } getch(); }
можно просто программой, функцию делать необязательно)
Решение задачи: «Формирование символьной строки, что соответствует двоичному коду»
textual
Листинг программы
#include <stdio.h> #include <conio.h> #include <stdlib.h> main() { unsigned long long int p=0, i; unsigned int u; system("cls"); printf("vvedite p:\n");// здесь 2^64-1 максимально scanf("%llu",&p); printf("%llu\n", p); for(i = 0x8000000000000000, u=1; i; u++, i>>=1) { if (p&i) putchar('1'); else putchar('0'); if (!(u%8)) putchar(' '); } getch(); }
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream.h, conio.h, stdlib.h
- Объявление переменных: p (unsigned long long int), i (unsigned int), u (unsigned int).
- Очистка экрана с помощью функции system(
cls
). - Запрос на ввод числа p с помощью функции scanf(
%llu
,&p). - Вывод числа p с помощью функции printf(
%llu\n
, p). - Инициализация цикла for с условием от 0x8000000000000000 до 0x0000000000000001.
- Внутри цикла проверяется, является ли p равным i, и если да, то выводится '1', иначе '0'.
- Если значение u делится на 8 без остатка, то выводится пробел.
- После окончания цикла программа ожидает нажатия клавиши с помощью функции getch().
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д