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

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

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

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

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

как это реализовать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2012, 21:05
Ответы с готовыми решениями:

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

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

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

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

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

... гениально, почему минус '0'?
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
15.12.2012, 21:14 4

Не по теме:

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



Если хорошо сформулировать вопрос, то половина ответа придет сама:
значение цифры равно значению ее символа в таблице символов компьютера минус значение '0'
собственно, Вы сами ответили на свой вопрос.
0
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
15.12.2012, 21:17  [ТС] 5
не понятен механизм: почему отнимая от char символа '0' мы получаем int тип?
0
26 / 37 / 10
Регистрация: 17.02.2009
Сообщений: 364
15.12.2012, 21:20 6
int x = atoi(char);
1
14 / 14 / 1
Регистрация: 20.04.2010
Сообщений: 102
15.12.2012, 21:20 7
Цитата Сообщение от slipp1 Посмотреть сообщение
не понятен механизм: почему отнимая от char символа '0' мы получаем int тип?
char это целочисленный тип, как и int
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
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
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1
15.12.2012, 21:21  [ТС] 9
Цитата Сообщение от slipp1 Посмотреть сообщение
нужно перевести из char в int, способ перевода следующий:

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

как это реализовать?
нужно реализовать именно этот подход.
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
15.12.2012, 21:22 10
Цитата Сообщение от slipp1 Посмотреть сообщение
не понятен механизм: почему отнимая от char символа '0' мы получаем int тип?
потому что символы - это числа(коды). Отнимая одно число от другого, так же получаем число.
Получается
код_символа_'7' - код_символа_'0' = 7
1
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
15.12.2012, 21:22 11
Цитата Сообщение от slipp1 Посмотреть сообщение
... гениально, почему минус '0'?
потому что будет
0х37-0х30=0х07
1
13 / 12 / 9
Регистрация: 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
14 / 14 / 1
Регистрация: 20.04.2010
Сообщений: 102
15.12.2012, 21:31 13
Цитата Сообщение от slipp1 Посмотреть сообщение
прыжок с подвыпердышем

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


суть такова: отнимая от char char получаем int?
char это целое число размером 1 байт. отнимая из char char получаем целое число.
целое число присвоить переменной другого целочисленного типа не составляет труда))
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
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
13 / 12 / 9
Регистрация: 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
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
15.12.2012, 21:36 16
Суть в том, что 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 17
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  [ТС] 18
всем спасибо разобрался.
0
15.12.2012, 21:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2012, 21:49
Помогаю со студенческими работами здесь

Перевод из int в char
Пытаюсь перевести число int в строку char. На экран постоянно выводит какие-то иероглифы. Не могли...

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

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

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

Перевод массива из char в int
есть массив символьного типа. нужно перевести его в тип int для того, что бы далее производить над...

Перевод int в символьный массив char
Помогите плз реализовать алгоритм перевода целого числа в символьный массив.. К примеру: дано...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru