2011-01-15 4 views
2

Я пытался это сделать, но я не смог найти для этого хороший источник.C++ char array to int и int to char array

В основном, я хочу преобразовать переменную char * (массив байтов) в int и наоборот. Спасибо.

+2

Вопрос нечеткий, поскольку вы не указываете, как должно обрабатываться содержимое массива. Существует как минимум три интерпретации, включая кастинг, преобразование строк и обработку байтового массива в виде 8-битных целых чисел. –

ответ

1

Если вы пытаетесь преобразовать массив байтов в междунар, достаточно использовать reinterpret_cast. Технически это UB, но если вы знаете, что байты в правильном формате, это обычно приводит к тому, что вы просите.

Это, заметив разницу между char * STRING и char * BYTE ARRAY.

2

Чтобы преобразовать из строки в целое число, вы можете использовать функцию atoi и sprintf, чтобы сделать это в другом направлении.

UPDATE (см комментарии):

Чем вам нужно сделать следующее

char *word = "Hello world"; 
int ints[11]; 
for(int i=0; i<strlen(word); ++i) 
     ints[i] = (int)word[i]; 
+0

Я говорил о побитовых операторах. Не строковые, как конверсии. – SBSTP

+1

Что это значит? Предоставляя пример того, какие данные будут в char *, и какой тип int вы ожидаете в конечном итоге, поможет. «Поразрядные операторы» в этом случае, похоже, не имеют никакого смысла, поэтому вопрос должен быть неясным. –

+0

ну, скажем, я просто прочитал 4 байта файла. Они хранятся в char *, и я хотел бы сделать это int. И я также хотел бы превратить int в char [4]. Не преобразование числа в числовое значение строки. – SBSTP