27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
|
|
1 | |
из char[] в int23.03.2012, 11:30. Показов 2767. Ответов 24
Метки нет (Все метки)
Задача не столь тривиальна как кажется. Мне нужно преобразовать например "2523532" в char* где данные будут храниться в 256ричной системе. И после обратно в char[]. Так вот как это сделать НЕ пользуясь int'ами?
Добавлено через 26 минут Форумчанееее Добавлено через 18 минут Неужели никто не знает и даже мыслей нету? ><
0
|
23.03.2012, 11:30 | |
Ответы с готовыми решениями:
24
Реализация функции char *padl(const char *string, int len, int c=' ') Форматирование строк, char to int & int to char Как превести из char* в int и наоборот из int в char*? Подскажите пожалуйста с int main(int argc, char*argv[]) |
7 / 7 / 1
Регистрация: 29.03.2011
Сообщений: 81
|
||||||
23.03.2012, 11:43 | 2 | |||||
Вот совсем вас не понял!
Недавно тут поднимал тему преобразования char[] в int, самый легкий и быстрый способ это
0
|
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
|
|
23.03.2012, 11:49 [ТС] | 3 |
Driim, объясняю, пишу свой класс чисел (больше чем 2^32). Поэтому int'ами пользоваться нельзя, собственно. В процессе мне нужно задать переменной класса какое-либо число, для этого мне нужно перевести строку (например: "2254345") в 256-ричную СС, что бы хранить в char*. А для вывода на экран нужно снова преобразовать к строке. Как сделать это, не пользуясь int я не знаю
0
|
Модератор
13508 / 10758 / 6412
Регистрация: 18.12.2011
Сообщений: 28,723
|
|
23.03.2012, 11:50 | 4 |
Поищите в этом разделе по тексту "преобразование в любую систему счисления"
0
|
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
|
|
23.03.2012, 12:02 [ТС] | 5 |
zss, там реализовано опять же через int
0
|
7 / 7 / 1
Регистрация: 29.03.2011
Сообщений: 81
|
|
23.03.2012, 12:07 | 6 |
Реализуй через uint64_t туда можно записать больше чем 2^32
0
|
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,169
|
|
23.03.2012, 12:11 | 7 |
0
|
Модератор
13508 / 10758 / 6412
Регистрация: 18.12.2011
Сообщений: 28,723
|
|
23.03.2012, 12:25 | 8 |
Вот нашел то, что Вам надо.
https://www.cyberforum.ru/cpp-... post154443 Заберите с этой страницы файл conv_w.rar
0
|
5056 / 3116 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
23.03.2012, 12:41 | 9 |
Чтобы хранить в массиве char'ов максимум информации?
Добавлено через 3 минуты Ага, и вообще какой-то бредовый...
0
|
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,169
|
|
23.03.2012, 12:44 | 10 |
Каким же образом? Какую систему ни выбери, а один чар все равно больше 256 в десятичной системе вместить не сможет
0
|
5056 / 3116 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
23.03.2012, 12:46 | 11 |
kazak, да, но если мы выберем, скажем, 16-ричную систему, то он и больше 16 вместить не сможет.
0
|
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,169
|
|
23.03.2012, 13:01 | 12 |
Если в чаре хранить один шестнадцетиричный символ, то да. Но это уже из ряда вон.
0
|
5056 / 3116 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
23.03.2012, 13:03 | 13 |
Ну так, я полагаю, именно для решения данной проблемы было озвучено "256-ричная сс".
Ну а с этим никто и не спорит
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
23.03.2012, 13:16 | 14 |
Какая разница, как интерпретировать байты? Ну выберешь ты шестнадцатеричную, а ней максимум FF, в десятичной был 255. Что это меняет?
0
|
5056 / 3116 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
23.03.2012, 13:34 | 15 |
taras atavin, в конечном размере массива символов. Для того, чтобы разбить число на группы по 16, потребуется больше ячеек, чем на группы по 256.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
23.03.2012, 13:36 | 16 |
Шестнадцатеричных цифр надо ровно в два раз больше, чем двестипятидесятишестиричных, но и занимают они 4 бита, а не 8.
0
|
5056 / 3116 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
23.03.2012, 13:39 | 17 |
taras atavin, и что? Речь не велась о том, как склеить две 16-ричных цифры, чтобы засунуть их в один char. Если бы вопрос ставился так, сс вообще не была бы важна. В двоичной куда проще всё это делать, фигачим биты подряд в ячейки массива, не задумываясь о границах этих ячеек, и всё.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
23.03.2012, 13:48 | 18 |
Ты не учёл, что смешанная система, одно из оснований которой является целой степенью другого, полностью эквивалентна не смешанной с основанием, равным меньшему, а если игнорировать представление цифр, то большему. Так вот, . То есть, двоичная, четвертичная, шестнадцатеричная и двестипятьдесятшестиричная различаются лишь интерпретацией. Тебе удобней биты? А мне байты.
0
|
5056 / 3116 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
23.03.2012, 13:54 | 19 |
taras atavin, я вообще ничего не учитывал, передо мной задача представления числа не стоит. Я лиш говорил о том, что используя 256ричную сс, можно использовать весь char, а используя 16ричную (без дополнительных манипуляций) - лишь малую его часть.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
23.03.2012, 14:30 | 20 |
Чего вдруг? Представь, что байты четырёхбитные, тогда можно записать по цифре на байт число, например, FEA4D41. А в четвертичной это будет 33322210311001, но на самом деле это те же байты, просто F=33, E=32, A=22, 4=10, D=31, 1=01. ну ка найди пропавшие биты! Здесь то же самое.
0
|
23.03.2012, 14:30 | |
23.03.2012, 14:30 | |
Помогаю со студенческими работами здесь
20
Сделать преобразование unsigned char в char, а затем типу int Ошибка: initializing argument 2 of `char* fgets(char*, int, FILE*) конвертирование (char)int (char*)int int main(int argc, char* argv[]) ? [BCC32 Error] File1.cpp(74): E2285 Could not find a match for 'student1::student1(const char *,int,int)' Как в выделенную память записать поочередно число int, массив char[n], и еще число int Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |