1 / 1 / 0
Регистрация: 17.09.2013
Сообщений: 99
|
||||||
1 | ||||||
Перевод char в int работает только для положительных, не дробных чисел20.10.2013, 14:19. Показов 3183. Ответов 12
Метки нет Все метки)
(
Добавлено через 15 минут С отрицательными разобрался.
0
|
|
20.10.2013, 14:19 | |
Ответы с готовыми решениями:
12
Перевод из int в char* внутри функции работает, а если вернуть строку то нет
Перевод из int в char Перевод из char в int |
202 / 200 / 65
Регистрация: 06.10.2013
Сообщений: 552
|
|
20.10.2013, 14:21 | 2 |
вообще int - это pow(2, sizeof(int)*8); все, что больше - переполнение из-за чего и "непонятный" результат.
для 16-битных систем можно, проверяйте первый символ и при необходимости отдавайте (-Chislo) long long спасет вас! int - целочисленный, для дробей есть float/double/long double
1
|
1 / 1 / 0
Регистрация: 17.09.2013
Сообщений: 99
|
|
20.10.2013, 14:24 [ТС] | 3 |
Это понятно, но как распознать, где именно будет начинаться дробная часть? Найти запятую можно, но как сказать, что это начало дробной части?
0
|
202 / 200 / 65
Регистрация: 06.10.2013
Сообщений: 552
|
|
20.10.2013, 15:00 | 4 |
после запятой - значит, дробная. Если потом еще и показатель степени встретился (1.123e14), то домножать все число на 10 в какой-то там степени
0
|
1 / 1 / 0
Регистрация: 17.09.2013
Сообщений: 99
|
|
20.10.2013, 17:29 [ТС] | 5 |
Не спасает не long int, не long long. 10 цифр нормально переводит, 11 - ересь получается.
0
|
1 / 1 / 0
Регистрация: 17.09.2013
Сообщений: 99
|
||||||
20.10.2013, 17:39 [ТС] | 7 | |||||
Не помогает.
0
|
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
|
||||||
21.10.2013, 14:48 | 8 | |||||
![]() Решение
1234567890123 8 9223372036854775807 18446744073709551615
1
|
XZentus
|
21.10.2013, 14:54
#9
|
Не по теме: удалено
0
|
1 / 1 / 0
Регистрация: 17.09.2013
Сообщений: 99
|
||||||
21.10.2013, 18:48 [ТС] | 10 | |||||
Vua72, у меня:
Вывод: -539222987 8 -1 2147483647 Добавлено через 5 минут У long int - 32 бита и минимальный диапазон: от -2147483648 до 2147483647. Поэтому только 10 знаков. Причем, если ввести, например, 10 пятерок, то тоже все сливается. Переполнение происходит. Это у меня. Добавлено через 33 секунды Наверно, это никак не преодолеть. Если только как-нибудь разделять строку цифр на несколько массивов. Добавлено через 12 минут У меня вообще не реагирует на long long.
0
|
1 / 1 / 0
Регистрация: 17.09.2013
Сообщений: 99
|
||||||
21.10.2013, 19:48 [ТС] | 12 | |||||
Решилось с помощью int64_t.
![]()
0
|
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
|
|
22.10.2013, 00:04 | 13 |
Ставьте уровень предупреждений на максимум, я думаю компилятор/IDE вас предупреждал.
1
|
22.10.2013, 00:04 | |
Помогаю со студенческими работами здесь
13
Перевод char в int
с#. перевод int в char
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |