LINUX.ORG.RU

Вытаскивание большого числа из char *.


0

0
Что делать, если у меня есть значение в пределах unsigned int (т.е. 8 байт) записанное в строке. Ни функцией atoi, ни функцией atol по понятным причинам его оттуда вытащить не получается, потому что в Unix int и long int по четыре байта. Как в таких случаях поступают? Может как-то нужно с символами пошаманить. С лету в голову ответ не приходит. Подскажите.

Ответ на: комментарий от anonymous
А, ну да, балбес. Там просто еще один бит дополнительный не под знак, а под число.
Lestat
() автор топика
ui = *(unsigned int*)str;

PS: обычно unsigned int это все таки 4 байта

lg ★★
()
Ответ на: комментарий от Murr
2Murr (*) (09.12.2003 16:04:56)

А что такое IA32 :)
anonymous
()
Ответ на: комментарий от Murr
Имеются в виду int и long int в gcc, of course. Если они по одному байту, то 8, конечно, не влезет. :)
Murr ★★
()
В компилерах, поддерживающих стандарт ISO/IEC 9899:1990 (AKA ISO C99) и конкретно в gcc:

long long atoll(const char *nptr);

получишь длинное-длинное 64 битное число ;)

loki
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.