一个以0开头的int发生了什么? ex 00101 [英] What's happening to an int that starts with 0? ex 00101
本文介绍了一个以0开头的int发生了什么? ex 00101的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想知道,当int是从零开始时发生了什么?
int main(){
int myint = 01001;
cout<< myint;
return 0;
}
为什么输出:
513
我试过几个编译器。 / p>
解决方案
然后整数被视为八进制数。因此,
01001
b $ b
等于
1 * 8 ^ 0 + 0 * 8 ^ 1 + 0 * 8 ^ 2 + 1 * 8 ^ 3 = 1 + 0 + 0 + 512 = 513
p>
I am wondering, what is happening when an int is starting with a zero?
int main() {
int myint = 01001;
cout << myint;
return 0;
}
Why is that outputting:
513
I have tried several compilers.
解决方案
Then the integer is treated as an octal number. So,
01001
equals
1 * 8 ^ 0 + 0 * 8 ^ 1 + 0 * 8 ^ 2 + 1 * 8 ^ 3 = 1 + 0 + 0 + 512 = 513
No magic in there.
这篇关于一个以0开头的int发生了什么? ex 00101的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文