Это почти точный дубликат моего вопроса несколько недель назад.Преобразование десятичного в шестнадцатеричный, если тип данных не может содержать полный номер
Convert Hex to Decimal when no datatype can hold the full number
На этот раз, это обратное. У меня есть число (в удобной строке с нулевым завершением), и мне нужны байты, которые делают этот номер. Тем не менее, я работаю в 32-битной архитектуре для микроконтроллера, поэтому у меня нет возможности использовать atoi, так как число больше 32 бит.
Есть ли у кого-нибудь идея о том, как отменить алгоритм, предусмотренный в первой ссылке, чтобы вернуть исходный результат? Мои способности по модулю арифметики не позволяют мне.
Быстрый пример: 155.207.231.135 к 0x [24] [23] [12] [66] [9F] (скобки отдельные байты)
Я не понимаю, почему a% 32, когда массив байтов может удерживать до% 256 –
. Вы правы, у меня, по-видимому, не было достаточного количества кофеина, когда я писал, исправлено :) – matthock
Хотя подумайте об этом, который начинает представлять проблему с переполнением. Необходимо ограничить это до 7 десятичных цифр, чтобы этого избежать. – matthock