Другие языки программирования и технологии

Как компьютер отличает числа от букв?

Здравствуйте! На уроке информатики нам объяснили, что каждой букве сопоставлено число. Например в таблице ASCII букве "b" соответствует число 98. Потом в интернете я прочитал, что все буквы и числа в памяти компьютера закодированы последовательностью из восьми бит (в ASCII). Тогда получается буква "b" и число 98 имеют одинаковый двоичный код. То есть двум разным символам может соответствовать один и тот же двоичный код. Как же тогда компьютер определяет, что представлено этим двоичным кодом - число или буква при выводе на монитор?
Сергей Львов
Сергей Львов
2 042
Как бы число 1 и символ '1' это разные вещи. В кодах ASCII 0x31 это символ '1'.
Интерпретация символа числом широко используется в программировании. Но их не смешивают. Так как есть понятие типа, кстати тип char тоже относится к целочисленным.
Кстати, на монитор нельзя вывести просто число, нужно его преобразовать в символьные представление и его вывести (если речь о консольное режиме).
АЯ
Алексей Яндулов
36 000
Лучший ответ
Сергей Львов Скажите пожалуйста, я правильно понимаю, что если компьютер выполнил какую-либо арифметическую операцию, то результат этой операции будет занесён в память в виде КОДА ЧИСЛА. А для визуального отображения результат должен быть преобразован уже в КОД СИМВОЛА ЧИСЛА?
Владимир Андреев вообще вопрос не про то. Вы лучше ответьте, как компьютер отличает, что данный код нужно отобразить как символ '1' а не число 0x31 (49). Ведь никаких данных о типе к этому коду в памяти не хранится
Алексей Яндулов В памяти могут лежать только двоичные данные.Интерпретация этих данных - дело программы.В режиме консоли каждый байт кодирует один символ.
char a ='1' в памяти будет 00110001
char b =1 в памяти будет 00000001
При выоде на экран в первом случае будет 1 а во втором -спецсивол с кодом ASCII 0x01
 #include 
#include
#include
int main()
{ char b;
b = '1';
std::cout
Никак, компьютеру это пофигу. Это вопрос интерпретации данных ТОБОЙ, а не компьютером.
Женька Шкода
Женька Шкода
89 998
"То есть двум разным символам может соответствовать один и тот же двоичный код. " Каким РАЗНЫМ?!
Hunter .
Hunter .
55 998
Число и буква ен имеют одинаковый код. И число это занимает в два раза больше памяти.
При объявлении переменной программист указывает ее тип.
Например, в с++
char a;
int b;
- в первую переменную можно теперь записать только букву или небуквенный символ вроде знака препинания, во вторую - только целое число.
В интерпретируемых языках эту роль играют кавычки.
a = "12"; - это символы
b = 12; - это число
a+a даст 1212
b+b даст 24
Олег Гавинский
Олег Гавинский
98 131
вот это бы ты на уроке информатики и спросил бы
Vladislav Shumka
Vladislav Shumka
80 733
Ап Ыпи вот это бы ты на уроке информатики и спросил бы
Очень просто.
Числа это тоже символы, и они тоже закодированы.
https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg
компьютер оперирует последовательностями 0 и 1 и ему абсолютно все равно, число это, буква или, например, картинка.
Никитин Сергей
Никитин Сергей
38 457
Компьютер сам по себе ничего не решает. Данными оперирует программа. А что именно обозначает именно этот байт именно для этой программы - это уж как задумал программист. Если в этом байте число, то при выводе на экран программист позаботится о его преобразовании в строку символов. Если же символ, то программист использует функцию вывода символа на экран для вывода этого байта.
Ти
Тимур
17 969
кароче компьютер знает числа
такомуто числу назначена такаято картинка или рисунок буквы который ты видишь на экране

а кодирование букв это в языках программирования то есть к примеру -ты нажал клавишу и она имеет два шифра -число на клавиатуре и букву которая она обозначает и выводит на экран
както так надеюсь понятно обьяснил
Это программа представляет байты в памяти как число/символ и т. д.
Роман Шрайнер
Роман Шрайнер
2 254
Все данные в компьютере - числа. Программа преобразует нужные нам числа в памяти в буквы на экране.
Кодировка - указание программе какое число какую букву будет изображать.
Функция writeln() - отвечает за преобразование чисел в пиксельное представление букв на экране.

Все это значит что компьютер не различает где символы, а где числа. Только программа способна делать это.
КОМПЬЮТЕР НЕ ЗНАЕТ ТАКОЕ ПОНЯТИЕ КАК БУКВЫ У НЕГО ВСЕ БУКВЫ В ЧИСЛОВОМ ЭКВИВАЛЕНТЕ СЛЕДОВАТЕЛЬНО ОТЛИЧАТЬ НИЧЕГО НЕ НУЖНО
АС
Алексей С
1 594
Сергей Львов Но ведь при выводе на монитор числовой эквивалент должен преобразовываться в соответствующий ему символ (букву или цифру)
очень просто.
числа это тоже символы и они тоже закодированы.
посмотри на этом сайте

https://ru.wikipedia.org/wiki/ASCII#/media/File:ASCII_Code_Chart.svg
Talgat Elibaev
Talgat Elibaev
438