Что означает дополнительный 0 перед значением int?
Вдохновляясь запутанным фрагментом кода, у меня есть небольшой вопрос относительно назначения значения целому числу:
#include <iostream>
#include <cstdio>
int main() {
int i = 0101;
std::cout << i << "\n";
}
И выходной был 65, и я понятия не имею, откуда 65? Любая идея?
2 ответа
Решение
Указывает восьмеричное (основание-8) число: 0101 == 1 * (8 * 8) + 1 == 65
,
Ламберт уже объяснил это. Итак, позвольте мне сказать вам, что еще вы можете сделать.
Вы можете написать шестнадцатеричное целое число:
int main() {
int i = 0x101; //0x specifies this (i.e 101) is hexadecimal integer
std::cout << i << "\n"; //prints 257 (1 * 16 * 16 + 1)
}
Выход:
257