PHP 8进制数

[复制链接]
查看11 | 回复2 | 2010-5-18 15:51:47 | 显示全部楼层 |阅读模式
一个 011 这样的数字 会被理解成 一个 8进制数。
我想让他 表示 11 怎么办呢?
这个 数 无论 是 用trim 去掉0, 还是转换成 字符串
都会变成 9。
85955389 说的我不是非常懂。能稍微详细点么。
天驴飞翔的方法 我知道,但是不是我想要的方法。
我需要的是 对于一个可能 在开头存在 0 的整型数 去掉0.
就是 不知道 他到底 是不是一个 这样的数。
实在不行的话退而求其次,怎么判断一个 整形数 采用的是几进制啊?

回复

使用道具 举报

千问 | 2010-5-18 15:51:47 | 显示全部楼层
首先011这个数字常量在计算机中是以二进制0000 1001(c编译器的存储形式) 0000 0000 0000 1001(C++编译器中的存储形式)而十进制9在计算机中的表示方法与其完全相同,计算机操作011还是9实际上都是操作的二进制1001,因此是不会出现改变的。 计算机要想将011处理为11,那么必须取出011这个值,而任何数值常量,不论是int还是double都是以二进制来存储并进行处理的,因此取出的011在计算机看来它是个二进制:0000 1001 而trim函数只能除去字符,对于这个二进制是无能为力的。如果你想实现一个任务: 检测输入的一个数是几进制,可以参考一下程序:#include #in
回复

使用道具 举报

千问 | 2010-5-18 15:51:47 | 显示全部楼层
可以用字符串格式化来改变 。1 楼的你不提解决方法也就算了,哪来一通八竿子打不着边的言论?你是自己写的还是复制的?$tmp = sprintf("%o",011);echo($tmp);试试去 。也可以直接printf("%o",011);可懂? 你可以去仔细参考下 printf 的用法 。第一个参数是 format 。就
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行