Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.73
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
#1

Перевод из char в int - C++

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

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

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

как это реализовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 21:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод из char в int (C++):

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

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

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

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

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

Перевод массива из char в int - C++
есть массив символьного типа. нужно перевести его в тип int для того, что бы далее производить над ним действия уже как с цифрами. как это...

17
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
15.12.2012, 21:09 #2
C++
1
2
char ch = '7';
int x = ch - '0';
1
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
15.12.2012, 21:12  [ТС] #3
Цитата Сообщение от Schizorb Посмотреть сообщение
C++
1
2
char ch = '7';
int x = ch - '0';

... гениально, почему минус '0'?
0
Croessmah
Эксперт CЭксперт С++
13428 / 7583 / 856
Регистрация: 27.09.2012
Сообщений: 18,674
Записей в блоге: 3
Завершенные тесты: 1
15.12.2012, 21:14 #4

Не по теме:

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



Если хорошо сформулировать вопрос, то половина ответа придет сама:
значение цифры равно значению ее символа в таблице символов компьютера минус значение '0'
собственно, Вы сами ответили на свой вопрос.
0
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
15.12.2012, 21:17  [ТС] #5
не понятен механизм: почему отнимая от char символа '0' мы получаем int тип?
0
Gus
24 / 35 / 2
Регистрация: 17.02.2009
Сообщений: 364
15.12.2012, 21:20 #6
int x = atoi(char);
0
fit
14 / 14 / 0
Регистрация: 20.04.2010
Сообщений: 102
15.12.2012, 21:20 #7
Цитата Сообщение от slipp1 Посмотреть сообщение
не понятен механизм: почему отнимая от char символа '0' мы получаем int тип?
char это целочисленный тип, как и int
0
ValeryS
Модератор
6654 / 5063 / 470
Регистрация: 14.02.2011
Сообщений: 16,934
15.12.2012, 21:20 #8
можно и так
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
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
15.12.2012, 21:21  [ТС] #9
Цитата Сообщение от slipp1 Посмотреть сообщение
нужно перевести из char в int, способ перевода следующий:

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

как это реализовать?
нужно реализовать именно этот подход.
0
Croessmah
Эксперт CЭксперт С++
13428 / 7583 / 856
Регистрация: 27.09.2012
Сообщений: 18,674
Записей в блоге: 3
Завершенные тесты: 1
15.12.2012, 21:22 #10
Цитата Сообщение от slipp1 Посмотреть сообщение
не понятен механизм: почему отнимая от char символа '0' мы получаем int тип?
потому что символы - это числа(коды). Отнимая одно число от другого, так же получаем число.
Получается
код_символа_'7' - код_символа_'0' = 7
1
ValeryS
Модератор
6654 / 5063 / 470
Регистрация: 14.02.2011
Сообщений: 16,934
15.12.2012, 21:22 #11
Цитата Сообщение от slipp1 Посмотреть сообщение
... гениально, почему минус '0'?
потому что будет
0х37-0х30=0х07
1
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
15.12.2012, 21:27  [ТС] #12
Цитата Сообщение от Croessmah Посмотреть сообщение
потому что символы - это числа(коды). Отнимая одно число от другого, так же получаем число.
Получается
код_символа_'7' - код_символа_'0' = 7
прыжок с подвыпердышем

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

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


суть такова: отнимая от char char получаем int?
char это целое число размером 1 байт. отнимая из char char получаем целое число.
целое число присвоить переменной другого целочисленного типа не составляет труда))
0
ValeryS
Модератор
6654 / 5063 / 470
Регистрация: 14.02.2011
Сообщений: 16,934
15.12.2012, 21:35 #14
Цитата Сообщение от 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
slipp1
13 / 12 / 1
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
15.12.2012, 21:36  [ТС] #15
Цитата Сообщение от ValeryS Посмотреть сообщение
не хранят компьютеры буквы, только числа
char целочисленный тип размером в 1 байт
int целочисленный тип с другим размером( в виндос 4 байта)
вычитая одно целочисленное число из другого получаем третье

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

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

изобрети другое
да. спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2012, 21:36
Привет! Вот еще темы с ответами:

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

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

Перевод элементов массива char в int - C++
Задача о золотом песке. Во входном файле 6 чисел, первые три стоимость за килограмм каждого вида песка, вторые - масса которую вмещает...

Перевод char массива в int массив - C++
Делаю так: int inmas; char outmas; fgets(outmas,40,write); outmas2=atoi(outmas); Пишет что типы несовместимы.


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
15.12.2012, 21:36
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru