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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.73
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
15.12.2012, 21:05     Перевод из char в int #1
нужно перевести из char в int, способ перевода следующий:

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

как это реализовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 21:05     Перевод из char в int
Посмотрите здесь:

Перевод int в символьный массив char C++
C++ Перевод из int в char
C++ Массив char + перевод в int
Перевод массива из char в int C++
Перевод из char в int C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
15.12.2012, 21:09     Перевод из char в int #2
C++
1
2
char ch = '7';
int x = ch - '0';
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
15.12.2012, 21:12  [ТС]     Перевод из char в int #3
Цитата Сообщение от Schizorb Посмотреть сообщение
C++
1
2
char ch = '7';
int x = ch - '0';

... гениально, почему минус '0'?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
15.12.2012, 21:14     Перевод из char в int #4

Не по теме:

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



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

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

как это реализовать?
нужно реализовать именно этот подход.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
15.12.2012, 21:22     Перевод из char в int #10
Цитата Сообщение от slipp1 Посмотреть сообщение
не понятен механизм: почему отнимая от char символа '0' мы получаем int тип?
потому что символы - это числа(коды). Отнимая одно число от другого, так же получаем число.
Получается
код_символа_'7' - код_символа_'0' = 7
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,058
15.12.2012, 21:22     Перевод из char в int #11
Цитата Сообщение от slipp1 Посмотреть сообщение
... гениально, почему минус '0'?
потому что будет
0х37-0х30=0х07
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
15.12.2012, 21:27  [ТС]     Перевод из char в int #12
Цитата Сообщение от Croessmah Посмотреть сообщение
потому что символы - это числа(коды). Отнимая одно число от другого, так же получаем число.
Получается
код_символа_'7' - код_символа_'0' = 7
прыжок с подвыпердышем

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

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


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

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

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

изобрети другое
да. спасибо.
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
15.12.2012, 21:36     Перевод из char в int #16
Суть в том, что char представлены целыми числами. Символ '7' представлен, допустим, как число 55. Символ '0' - как 48. Разница между ними и будет равна 7.

C++
1
2
3
cout << int('7') << endl;
cout << int('0') << endl;
cout << '7' - '0' << endl;
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
15.12.2012, 21:43     Перевод из char в int #17
slipp1, цифре ноль соответствует в таблице ASCII 48. Т.е. если мы напишем
C++
1
char c = '0'; // то реально с равно 48
После нуля следует единица, и так до девяти. Т.е. если написать
C++
1
int i = '1'; // то i равно 49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2012, 21:49     Перевод из char в int
Еще ссылки по теме:

Перевод int и double в char* C++
C++ Перевод *char в int[] c++
C++ Перевод char в int

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

Или воспользуйтесь поиском по форуму:
slipp1
12 / 11 / 1
Регистрация: 09.11.2012
Сообщений: 365
Записей в блоге: 1
15.12.2012, 21:49  [ТС]     Перевод из char в int #18
всем спасибо разобрался.
Yandex
Объявления
15.12.2012, 21:49     Перевод из char в int
Ответ Создать тему
Опции темы

Текущее время: 17:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru