13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1

Перевод из char в int

15.12.2012, 21:05. Показов 46674. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
нужно перевести из char в int, способ перевода следующий:

"значение цифры равно значению ее символа в таблице символов компьютера минус значение '0'." (c)книжка

как это реализовать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.12.2012, 21:05
Ответы с готовыми решениями:

Перевод из char в int
Подскажите пожалуйста! У меня имеется массив символов, то бишь строка. Я хочу преобразовывать каждый символ строки в int. Int k; ...

Перевод char в int
Доброго времени суток, форумчане:senor:. Начинаю углубляться с++ вместе с заданием по курсовой:) Проблема: Имеется структура, ...

Перевод char в int
Доброго времени суток. покопался по схожим темам,но так и не нашёл ответа. На вводе с клвиатуры подаётся char-овский массив сстоящийиз...

17
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
15.12.2012, 21:09
C++
1
2
char ch = '7';
int x = ch - '0';
1
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
15.12.2012, 21:12  [ТС]
Цитата Сообщение от Schizorb Посмотреть сообщение
C++
1
2
char ch = '7';
int x = ch - '0';

... гениально, почему минус '0'?
0
Неэпический
 Аватар для Croessmah
18124 / 10708 / 2063
Регистрация: 27.09.2012
Сообщений: 26,996
Записей в блоге: 1
15.12.2012, 21:14

Не по теме:

Цитата Сообщение от slipp1 Посмотреть сообщение
... гениально, почему минус '0'?
Все гениальное - просто.



Если хорошо сформулировать вопрос, то половина ответа придет сама:
значение цифры равно значению ее символа в таблице символов компьютера минус значение '0'
собственно, Вы сами ответили на свой вопрос.
0
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
15.12.2012, 21:17  [ТС]
не понятен механизм: почему отнимая от char символа '0' мы получаем int тип?
0
 Аватар для Gus
26 / 37 / 10
Регистрация: 17.02.2009
Сообщений: 364
15.12.2012, 21:20
int x = atoi(char);
1
14 / 14 / 1
Регистрация: 20.04.2010
Сообщений: 102
15.12.2012, 21:20
Цитата Сообщение от slipp1 Посмотреть сообщение
не понятен механизм: почему отнимая от char символа '0' мы получаем int тип?
char это целочисленный тип, как и int
0
Модератор
Эксперт по электронике
8960 / 6726 / 921
Регистрация: 14.02.2011
Сообщений: 23,743
15.12.2012, 21:20
можно и так
C++
1
2
char ch = '7';
int x = ch &0x0F;
значения чисел в ascii кодировке
0 0х30 1 0х31 2 0х32 3 0х33 4 0х34 5 0х35
6 0х36 7 0х37 8 0х38 9 0х39
оставляем младший полубайт
0
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
15.12.2012, 21:21  [ТС]
Цитата Сообщение от slipp1 Посмотреть сообщение
нужно перевести из char в int, способ перевода следующий:

"значение цифры равно значению ее символа в таблице символов компьютера минус значение '0'." (c)книжка

как это реализовать?
нужно реализовать именно этот подход.
0
Неэпический
 Аватар для Croessmah
18124 / 10708 / 2063
Регистрация: 27.09.2012
Сообщений: 26,996
Записей в блоге: 1
15.12.2012, 21:22
Цитата Сообщение от slipp1 Посмотреть сообщение
не понятен механизм: почему отнимая от char символа '0' мы получаем int тип?
потому что символы - это числа(коды). Отнимая одно число от другого, так же получаем число.
Получается
код_символа_'7' - код_символа_'0' = 7
1
Модератор
Эксперт по электронике
8960 / 6726 / 921
Регистрация: 14.02.2011
Сообщений: 23,743
15.12.2012, 21:22
Цитата Сообщение от slipp1 Посмотреть сообщение
... гениально, почему минус '0'?
потому что будет
0х37-0х30=0х07
1
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
15.12.2012, 21:27  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
потому что символы - это числа(коды). Отнимая одно число от другого, так же получаем число.
Получается
код_символа_'7' - код_символа_'0' = 7
прыжок с подвыпердышем

Добавлено через 2 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
потому что будет
0х37-0х30=0х07
суть такова: отнимая от char char получаем int?
0
14 / 14 / 1
Регистрация: 20.04.2010
Сообщений: 102
15.12.2012, 21:31
Цитата Сообщение от slipp1 Посмотреть сообщение
прыжок с подвыпердышем

Добавлено через 2 минуты


суть такова: отнимая от char char получаем int?
char это целое число размером 1 байт. отнимая из char char получаем целое число.
целое число присвоить переменной другого целочисленного типа не составляет труда))
0
Модератор
Эксперт по электронике
8960 / 6726 / 921
Регистрация: 14.02.2011
Сообщений: 23,743
15.12.2012, 21:35
Цитата Сообщение от slipp1 Посмотреть сообщение
суть такова: отнимая от char char получаем int?
не хранят компьютеры буквы, только числа
char целочисленный тип размером в 1 байт
int целочисленный тип с другим размером( в виндос 4 байта)
вычитая одно целочисленное число из другого получаем третье

можно так написать
C++
1
2
3
char ch = '7';
char x = ch - '0';
int ix=x;
так понятней?

Добавлено через 51 секунду
Цитата Сообщение от slipp1 Посмотреть сообщение
прыжок с подвыпердышем
изобрети другое
0
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
15.12.2012, 21:36  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
не хранят компьютеры буквы, только числа
char целочисленный тип размером в 1 байт
int целочисленный тип с другим размером( в виндос 4 байта)
вычитая одно целочисленное число из другого получаем третье

можно так написать
C++
1
2
3
char ch = '7';
char x = ch - '0';
int ix=x;
так понятней?

Добавлено через 51 секунду

изобрети другое
да. спасибо.
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
15.12.2012, 21:36
Суть в том, что char представлены целыми числами. Символ '7' представлен, допустим, как число 55. Символ '0' - как 48. Разница между ними и будет равна 7.

C++
1
2
3
cout << int('7') << endl;
cout << int('0') << endl;
cout << '7' - '0' << endl;
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
15.12.2012, 21:43
slipp1, цифре ноль соответствует в таблице ASCII 48. Т.е. если мы напишем
C++
1
char c = '0'; // то реально с равно 48
После нуля следует единица, и так до девяти. Т.е. если написать
C++
1
int i = '1'; // то i равно 49
0
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
15.12.2012, 21:49  [ТС]
всем спасибо разобрался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.12.2012, 21:49
Помогаю со студенческими работами здесь

Перевод *char в int[] c++
Нужно перевести длинное число которое хранится в виде &quot;+/-324354365654656&quot; в char* в массив int. Нулевой элемент массива знак. Как...

Перевод из int в char
Пытаюсь перевести число int в строку char. На экран постоянно выводит какие-то иероглифы. Не могли бы вы ОБЪЯСНИТЬ почему так? Код мое...

Перевод int и double в char*
Возникла следующая проблема. Нужно сделать: //Реализовать класс var - «Универсальная переменная». Объекты экземпляры этого класса...

Массив char + перевод в int
Нужно создать цикл в котором при вводе с клавиатуры символа в 16ричной системе (0-F) это число: 1. Переводилось в 10-ю систему счисления,...

Перевод int в char (строку)
Есть код я покажу только части для указания на проблему int c=0; char a={' ',' '}; itoa(c+1,oo,10); выдаёт ошибку, мол invalid...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

Новые блоги и статьи
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru