php中int十进制和八进制的问题

<?php$int=10;//十进制声明$int=045;//以0开头的表示以8进制声明一个变量echo$int;这是写代码,最后浏览器得出是:37.是依据什么算来的,刚... <?php

$int=10; //十进制声明

$int=045; //以0开头的表示以8进制声明一个变量

echo $int;

这是写代码,最后浏览器得出是:37.

是依据什么算来的,刚学PHP不懂!!
展开
 我来答
百度网友0c90796
2011-10-11 · TA获得超过1611个赞
知道大有可为答主
回答量:2638
采纳率:0%
帮助的人:1085万
展开全部
楼主,你问的这个数的进制问题并不属于php的范围,严格的说它属于数学,而在计算机领域,它属于计算机系统结构和计算机组成原理所需要讲解的知识。

这里,给楼主简单介绍一下。

所谓8进制,就是逢8进1比如
1 2 3 4 5 6 7 10(这里如果按照10进制应该是8,但是由于是8进制,所以就向前进1位)

而10进制则是:
1 2 3 4 5 6 7 8 9 10(可以很明显的看出区别)

因此8进制的10对应的是10进制的8,那么如何根据8进制计算相应的10进制呢?这里就要讲到权的概念,就是指数。我们省略数学证明的过程,直接给出如何计算。

考虑一个八进制数017,0是进制标识我们不管。

这里是一个2位的8进制数,从低位到高位他的权依次是0,1;也就是说1对应的指数是1,7对应的指数是0,那么如何计算呢?

017=1*8^1+7*8^0=15,没错8进制的17对应的就是10进制的15,我们可以枚举验证:
8进制: 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17
10进制:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

注意在8进制中,数的各位上绝不可能出现大于8的数,比如不存在8进制数09,因为到8就进位了。

这里是关于进制的简单介绍,楼主如果要深入学习,请参见《计算机系统结构》和《计算机组成原理》

参考资料: 第一php

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yx7591753951
2011-10-10 · TA获得超过188个赞
知道小有建树答主
回答量:164
采纳率:0%
帮助的人:133万
展开全部
$int=045; int的值为八进制的045

建议理解下八进制的意思 就是逢8进1 跟十进制的逢十进一类似
010八进制 就相当于十进制的8
017就相当于 1*8+7 = 15
045 就相当于 4*8+5 = 37了
追问
你的球球号是多少,我加你,QQ说!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浴火fToG7
2011-10-10 · TA获得超过456个赞
知道小有建树答主
回答量:208
采纳率:0%
帮助的人:191万
展开全部
8进制就是逢8进位
045//8进制数
个位为5
十位为4,也就是4*8=32
加一块不就是37么
追问
还是没听明白,能详细一点不,有球球号吗?

为什么要乘八,又为什么要加5等于37.
追答
打个比方
十进制的数
37,中文读三十七
个位是7,十位是3,最后这个数是
3*10+7 = 37
对吧
因为是十进制,所以十位乘的是十
八进制是逢八进位
所以十位乘的是八
045换成10进制的数就是
4*8+5 = 37
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式