Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/244: Рейтинг темы: голосов - 244, средняя оценка - 4.93
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1

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

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

Студворк — интернет-сервис помощи студентам
нужно перевести из 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
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 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
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
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
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
15.12.2012, 21:22
Цитата Сообщение от slipp1 Посмотреть сообщение
не понятен механизм: почему отнимая от char символа '0' мы получаем int тип?
потому что символы - это числа(коды). Отнимая одно число от другого, так же получаем число.
Получается
код_символа_'7' - код_символа_'0' = 7
1
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
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
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,859
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru