|
0 / 0 / 1
Регистрация: 02.06.2016
Сообщений: 48
|
|
Символ или число20.07.2016, 18:24. Показов 1826. Ответов 23
Метки нет (Все метки)
Здравствуйте. В голове возник такой странный вопрос, а как компьютер понимает , где символ , а где число.
Например латинский символ 'a' имеет код 97, в двоичном это : 1100001, но так же есть и число 97, двоичное представление такое же, так вот повторю вопрос, как компьютер понимает, где число а где символ. Возможно допустил какую-то грубую ошибку, исправьте если что!
0
|
|
| 20.07.2016, 18:24 | |
|
Ответы с готовыми решениями:
23
Найти символ число по символу, введенному с клавиатуры, и после него добавить новый символ В списке найти символ число по заданному символу, и после него добавить новый символ |
|
Модератор
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,237
|
|
| 20.07.2016, 18:29 | |
|
Никак. Если переменная встречается в арифметическом выражении, то это число.
Если в строковых операциях, то символ.
1
|
|
|
385 / 279 / 478
Регистрация: 09.05.2014
Сообщений: 769
|
||||||
| 20.07.2016, 19:01 | ||||||
|
zss, а если к примеру операция вывода в поток?
0
|
||||||
|
Заблокирован
|
|
| 20.07.2016, 19:05 | |
|
Комптьютер никак не понимает. Для него все число, все в двоичном представлении. Число, или символ - это представление человека, а не компьютера.
0
|
|
|
Модератор
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,237
|
||||||
| 20.07.2016, 19:17 | ||||||
0
|
||||||
|
10 / 10 / 9
Регистрация: 30.03.2016
Сообщений: 163
|
|
| 21.07.2016, 00:35 | |
|
Компайлер(C++ к примеру) переводит код на код Асеблер, тот в свою очередь очень приближен на машинный коду (так сказать что то между) Асемблер уже переводит свой код на машинный, этот код и понимает компютер. Как это работает на машинном уровне уже совсем другая история.
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 21.07.2016, 03:16 | ||
|
2
|
||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 21.07.2016, 11:32 | |
|
1
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 21.07.2016, 12:12 | ||
|
0
|
||
|
Комп_Оратор)
|
|||||||
| 21.07.2016, 13:30 | |||||||
|
То есть, компилятор просто не пропустит операцию которая для типа не определена (если не возможно приведение к подходящему типу). Так не получится сложить два массива, например. Но если есть приведение, то оно будет действовать. Существует например пришедшее из глубины веков приведение char к целым типам в арифметических операциях( ). Чары данного приведения становятся целыми методом расширительного преобразования:
1
|
|||||||
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
| 21.07.2016, 13:38 | |
|
0
|
|
|
Комп_Оратор)
|
|||
| 21.07.2016, 18:40 | |||
|
Но ведь в С++ почти всё реализовано в библиотеках. А тип и определяется тем как его интерпретируют и какие операции с ним допустимы. Нет char это не short. Char это short поб'ери char и только char.
0
|
|||
|
385 / 279 / 478
Регистрация: 09.05.2014
Сообщений: 769
|
||||||
| 21.07.2016, 21:42 | ||||||
|
а теперь для совершеннейших дебилов, которые не рубят в ассемблерах и прочей низкоуровеньщине пожалуйста. вот к примеру объявление с инициализацией:
1
|
||||||
|
Комп_Оратор)
|
|||
| 21.07.2016, 22:19 | |||
int , выделяет память и сохраняет адрес. Теперь, везде где встретится, a в области видимости объявления, будет обращение по адресу в контексте заданном кодом. Например, в cout<<a; в консоль будут выведены символы десятичного (если не установлено другого режима) представления значения, записанного по адресу, связанному с а, в данных компилятора. Это может быть таблица соответствия. А если встретится cout<<char(a);, то выведется знак текущей кодовой таблицы с номером соответствующим a. Поскольку преобразование сужающее, то более менее ожидаемо оно будет, если значение a лежит в пределах char. В месте вызова оператора, код будет соответствовать вызову с символом, а не с целым и это разрешится на стадии компиляции, как я понимаю. А в первом случае будет вызвана перегрузка оператора << для int с тем же аргументом a. Пишу как человек, не ведающий низкоуровщины и реализации данных вещей на X86
2
|
|||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
||
| 21.07.2016, 22:24 | ||
|
1
|
||
|
Комп_Оратор)
|
||
| 21.07.2016, 22:33 | ||
|
А память в коде выделяется без значений адресов. Если значение известно на стадии компиляции то оно попадет в бинари inline. А память во время выполнения выделяет операционная система по запросу программы. И там нет не только int или char там нет даже C++.
1
|
||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
| 22.07.2016, 00:53 | |
|
0
|
|
|
385 / 279 / 478
Регистрация: 09.05.2014
Сообщений: 769
|
||
| 22.07.2016, 02:11 | ||
|
IGPIGP,
0
|
||
|
Комп_Оратор)
|
|||||
| 22.07.2016, 09:34 | |||||
|
lawr, прежде всего спасибо, что не стали писать о виртуальном и физическом адресном пространстве, различиях в выделении памяти для значения/адреса в коде и в процессе выполнения, о коде обслуживания вызова и пр.
Я уж думал - сейчас начнётся. rikimaru2013, я попросил воздержаться потому как тут есть кому потереть ладоши и без него. Кстати о них:
1
|
|||||
| 22.07.2016, 09:34 | |
|
Помогаю со студенческими работами здесь
20
Вставить символ ‘*’ в середину стека, если число элементов четное, или после среднего элемента, если нечетное
Заменить каждый четный символ или на 'a', если символ не равен 'a' или 'b', или на 'c' в противном случае Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|