Dinesh Sahoo Ответов: 1

Почему меняется значение


#include<stdio.h>
#include<conio.h>
void main()
{
int a=16,b=012,c=054;
printf("a=%d b=%d c=%d",a,b,c);

}


Что я уже пробовал:

почему выходные данные изменяются, что такое преобразование...

1 Ответов

Рейтинг:
8

OriginalGriff

Когда вы ставите перед числом префикс 0 в C, он предполагает, что число, которое вы вводите, не является длинным в десятичной системе счисления (база 10, та, которую мы обычно используем в реальном мире), а вместо этого в восьмеричной системе счисления (база 8, она работает 0, 1, ... 7, 10, 11, ... 17, 20, 21, ...)
Итак, это:

int a=16,b=012,c=054;
Создает три переменные и присваивает им значения:
a    16   deciml, value 16
b   012   octal,  value 10 in decimal
c   054   octal,  value 44 in decimal

Вы также можете префиксировать число с помощью "0x" или "0X", чтобы ввести шестнадцатеричные (или просто "шестнадцатеричные") числа
- которые в наши дни встречаются гораздо чаще, чем восьмеричные.

Видеть здесь: Восьмерка - Википедия[^]
А здесь: Шестнадцатеричная Система Счисления - Википедия[^]


CPallini

5.