echo (int)01; //1
echo (int)02; //2
echo (int)03; //3
echo (int)04; //4
echo (int)05; //5
echo (int)06; //6
echo (int)07; //7
echo (int)08; //0
echo (int)09; //0
echo (int)010; //8
echo (int)011; //9
echo (int)012; //10
echo (int)013; //11
(int)从01到07做得很好。但之后就出错了。它的原因是什么?
答案 0 :(得分:1)
如果数字从0开始,则考虑octal number
因为这些数字的范围仅为0到7。你得到一个0,因为8%8 = 0
参考:http://php.net/manual/en/language.types.integer.php
关于号码系统的附注
你有没有想过为什么9号的下一个数字是10?为什么在二进制系统中序列是0,1,10,11 ......?为什么八进制系统只允许从0到7的值?
这是因为数字系统通常会根据基础上的模数逻辑增加值。
例如,使用二进制数系统。因为它是base 2
,所以它只能包含值0,1,因为0%2 = 0,1%2 = 1,但2%2再次为0
所以每当有更多的数字出现时,就说3.它的二进制值是(在前面的地方加1)(把模数放在现有的地方)
因此二进制系统中3的值为(0+1) (3%2) = 11
虽然这不是确切的逻辑,但只是把它放在这里作为初学者参考
答案 1 :(得分:1)
预计08可能是八进制数,就像0x是十六进制数。