2015-06-02 7 views
-1

У меня проблема с использованием значений int в C, начинающихся с нуля (например, 00111001). Я знаю, что компилятор C понимает ноль в начале числа как восьмеричное число.Формат числа на октале в C

Мой вопрос в том, как его отключить? Я хочу превратить 8-значный int в char array[8]. , например. 01010001={'0','1','0','1','0','0','0','1'}

+0

Является ли это двоичным представлением? И вы можете сохранить его в строке вместо 'int'? –

+0

Просто замените ведущие нули пробелами в исходном коде. Есть ли причина, по которой вы не можете этого сделать? – hyde

+0

С самого начала вашего вопроса неясно, хотите ли вы целое число с ведущими нулями - например, двоичное представление числа в int или просто строковое представление числа, как я ответил ниже. Вы хотите получить фактическое целое число или строку символов? –

ответ

0

Окружите свой номер с кавычками:

char array[] = "01010001"; 

выше будет делать каждую цифру символа в массиве, который вы можете прочитать, а также размещение '\0' характера в конце, так что он может будет использоваться как строка C - согласно вашему последнему предложению. Опасайтесь, длина этой строки (в памяти) будет равна 9 символам, хотя из-за этого добавлен символ NUL.

+0

Если вы хотите ровно 8 символов, вы можете написать 'char array [8] =" 01010001 ";'. Конечно, у вас не будет * string *, просто массива символов. –

+0

По правде говоря, я не уверен, хочет ли он 'itoa()', то, что у меня есть, или что-то совсем другое, и он не будет обновлять вопрос. Не знаю. –

+0

Он отправил вопрос час назад, и он новичок на сайте. Давайте дадим ему время. –