Я пытался это сделать, но я не смог найти для этого хороший источник.C++ char array to int и int to char array
В основном, я хочу преобразовать переменную char * (массив байтов) в int и наоборот. Спасибо.
Я пытался это сделать, но я не смог найти для этого хороший источник.C++ char array to int и int to char array
В основном, я хочу преобразовать переменную char * (массив байтов) в int и наоборот. Спасибо.
Если вы пытаетесь преобразовать массив байтов в междунар, достаточно использовать reinterpret_cast. Технически это UB, но если вы знаете, что байты в правильном формате, это обычно приводит к тому, что вы просите.
Это, заметив разницу между char * STRING и char * BYTE ARRAY.
Чтобы преобразовать из строки в целое число, вы можете использовать функцию atoi
и sprintf
, чтобы сделать это в другом направлении.
UPDATE (см комментарии):
Чем вам нужно сделать следующее
char *word = "Hello world";
int ints[11];
for(int i=0; i<strlen(word); ++i)
ints[i] = (int)word[i];
Я говорил о побитовых операторах. Не строковые, как конверсии. – SBSTP
Что это значит? Предоставляя пример того, какие данные будут в char *, и какой тип int вы ожидаете в конечном итоге, поможет. «Поразрядные операторы» в этом случае, похоже, не имеют никакого смысла, поэтому вопрос должен быть неясным. –
ну, скажем, я просто прочитал 4 байта файла. Они хранятся в char *, и я хотел бы сделать это int. И я также хотел бы превратить int в char [4]. Не преобразование числа в числовое значение строки. – SBSTP
Вопрос нечеткий, поскольку вы не указываете, как должно обрабатываться содержимое массива. Существует как минимум три интерпретации, включая кастинг, преобразование строк и обработку байтового массива в виде 8-битных целых чисел. –