Я пытаюсь эту простую программу C, чтобы разделить число ..Простой C Программа деления числа
void main()
{
int i,j,k;
i=00126;
j=2;
k=i/j;
printf("%d",k);
}
Он показывает выход, как 43 вместо 63 .. Если я ставлю другой 0, как
i=000126;
сейчас я получаю ошибку как нелегальную восьмеричную цифру.
Если я пытаюсь
i=00000001000;
он не показывает ошибку и выдает результат в виде 256..I не могли понять этот неожиданный вывод. Может ли кто-нибудь сказать, почему он производит такие результаты?
Четкие пояснения будут оценены.
Edit: Если бы я попытался
int i,j,k;
i=1000;
j=0002;
k=i/j;
printf("%d",k); //which gives 500 as result
Что вы пытаетесь сделать? Разделить восьмеричные или целые числа? Вы не можете иметь начальные нули ... –
Если вы начинаете свои цифры с нуля, они находятся в восьмеричном. 126 oct = 86 раз. – ElPaco
i = 00000001000; может быть i = 0b000001000; ? Каков ваш компилятор? –