模返回不同的结果
问题描述:
int a=032302;
cout<<a%10<<endl; // output 6
int b=32302;
cout<<b%10<<endl; // output 2
我正试图获得该单元的地方了一些,但同时编码我发现了一个奇怪的事情,第一和第二没有在技术上是相同的,但它们都输出不同的结果。模返回不同的结果
第一个返回6而第二个2,我在这里丢失了什么?
答
在c/C++中以0(零)开始一个数字意味着它是一个八进制数(基数为8)的数字。因此032302以十进制表示法为13506。因此,最后一位数字是6,这就是你从模数运算中得到的结果。
答
考虑到
int a = 032302;
和
int b = 13506;
都保持自变量一个相同的整数值的事实是init为八进制文字
然后是正确的
一%10只返回6相同B%10点返回以 '0' 编号的6个
字面在底座8 –
基地8,其实。 – hlt
对,纠正。 –