在C ++中,如果我们通过控制台(cin)输入一个数字并从零开始一个数字,它将保持八进制数。 但是一个变量可以保存两个以上的值吗?
例如输入以下值:
03 => 3 (Octal) 012 => 10
但是当我们进入
0180 It give answer in 2 lines when output the variable (cout): 1 80 and 01188 gives 9 88
现在,我知道八进制基数的值为0到7 那么这里会发生什么? 一个变量是否存储了超过2个值,或者编译器只是因为我们在输入中输入了8而变得怪异?
我正在使用Akki编译器的turbo C 7。
答案 0 :(得分:10)
0180
是一个八进制的,后跟一个十进制的八十。 01188
是八进制九,后跟八进制八十八。任何非合法八进制字符都标记八进制数的结尾。任何非法定小数的字符都标记十进制数的结尾。
在跟进中,似乎你没有很好地掌握数字和数字表示之间的差异。考虑一下你(最有可能)拥有的手指数量。这个数字可以表示为" ten"," 10","您拥有的手指数量"以及许多其他方式。但无论你如何表现它,它仍然是相同的数字。
十进制和八进制是用于使用有限数量的不同符号表示无限数量的数值的方式。要在源代码中表示数字或作为计算机程序的输入或输出,必须使用某种表示。
理解数字和数字表示之间的差异对于成为一名熟练的程序员至关重要,并且拥有足够的数学知识来做到这一点至关重要。