Как компилятор будет отличать "а" от "А" - C (СИ)
Формулировка задачи:
вот решил написать прогу обратную моей,что когда то писал
надо из 0 и 1 переводить в текст.план есть что то вроде
ну что то вроде этого,но проблема в том,как компилятор будет отличать "а" от "А" ?ведь они отличаются
while((c=getchar)!=EOF){ if(c=001)cout<<"a"; esle if(c=101)cout<<"b"; }
Решение задачи: «Как компилятор будет отличать "а" от "А"»
textual
Листинг программы
#include <stdio.h> #include <ctype.h> #include <limits.h> /* Печать ascii символов и русских букв cp866 */ char *binStr(int c){ static char buf[CHAR_BIT + 1] = {0}; int i; for ( i = 0; i < CHAR_BIT; i++ ) buf[i] = ( c & (1 << (CHAR_BIT - 1 - i)) ) ? '1' : '0'; return buf; } int main(){ int c; printf("%5s %-5s %-5s %s\n", "symbol", "hex", "dec", "bin"); for ( c = 0; c <= UCHAR_MAX; c++ ) if ( isprint(c) || (c >= 128 && c <= 159) || (c >= 160 && c <= 175) || (c >= 224 && c <= 241) ) printf("%-6c %#-5x %-5d %s\n", c, c, c, binStr(c)); return 0; }
Объяснение кода листинга программы
- Структура программы включает в себя объявление функции
main()
, которая является точкой входа в программу, и функциюbinStr(int c)
, которая преобразует десятичное число в двоичное представление. - В функции
main()
используется функцияprintf()
для вывода таблицы с результатами. Таблица содержит столбцыsymbol
,hex
,dec
иbin
. - В функции
main()
используется циклfor
, который проходит через все допустимые значения символа от 0 до 255. - Условие цикла проверяет, является ли текущий символ печатаемым символом ASCII, символом кириллицы в кодировке CP866 или символом в диапазоне от 128 до 159, от 160 до 175 или от 224 до 241.
- Если условие истинно, то текущий символ выводится в столбцы
symbol
,hex
,dec
иbin
. - Функция
binStr(int c)
преобразует десятичное число в двоичное представление, используя побитовый оператор AND (&
) и сдвиг (<<
) для получения отдельных битов числа. - Функция
binStr(int c)
использует статический массивbuf
для хранения двоичного представления числа. - В функции
main()
используется функцияisprint()
для проверки, является ли символ печатаемым символом ASCII. - В функции
main()
используется функцияprintf()
для форматированного вывода таблицы с результатами. - В функции
main()
используется циклfor
, который проходит через все допустимые значения символа от 0 до 255. - Условие цикла проверяет, является ли текущий символ печатаемым символом ASCII, символом кириллицы в кодировке CP866 или символом в диапазоне от 128 до 159, от 160 до 175 или от 224 до 241.
- Если условие истинно, то текущий символ выводится в столбцы
symbol
,hex
,dec
иbin
. - Функция
binStr(int c)
преобразует десятичное число в двоичное представление, используя побитовый оператор AND (&
) и сдвиг (<<
) для получения отдельных битов числа. - Функция
binStr(int c)
использует статический массивbuf
для хранения двоичного представления числа. - В функции
main()
используется функцияisprint()
для проверки, является ли символ печатаемым символом ASCII. - В функции
main()
используется циклfor
, который проходит через все допустимые значения символа от 0 до 255. - Условие цикла проверяет, является ли текущий символ печатаемым символом ASCII, символом кириллицы в кодировке CP866 или символом в диапазоне от 128 до 159, от 160 до 175 или от 224 до 241.
- Если условие истинно, то текущий символ выводится в столбцы
symbol
,hex
,dec
иbin
. - Функция
binStr(int c)
преобразует десятичное число в двоичное представление, используя побитовый оператор AND (&
) и сдвиг (<<
) для получения отдельных битов числа. - Функция
binStr(int c)
использует статический массивbuf
для хранения двоичного представления числа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д