InfoQ

交流

讨论:强制类型转换的问题。

作者 yquan 发布于 2003-08-01 分类:php基础编程

IP:202.103.24.68 用ip2long函数转换后的返回值直接用echo或者print输出会显示:-899213244,所以手册上讲必须用sprintf函数%u格式化输出,才能输出无符号的值:3395754052 。

-899213244和3395754052的二进制都是1100 1010 0110 0111 0001 1000 0100 0100,如何去掉前面的符号位啊?

我的目的在于不用sprintf格式化输出就能显示出无符号的结果3395754052!!

帮我啊。!!



逛论坛交流强制类型转换的问题。

加入书签
digg+,
reddit+,
del.icio.us+,
dzone+

8 条回复

回复

dd 发表人 yquan 发表于 08月18日
帮顶 发表人 yhlong 发表于 08月19日
你有什么企图 发表人 tmyu 发表于 08月19日
那你想用什么输出? 发表人 friendkey 发表于 08月19日
我想用echo直接输出就可以得到无符号的.. 发表人 yquan 发表于 08月19日
为此我也困惑 发表人 bluesboy 发表于 08月19日
这里并没有类型转换的问题啊,只是有符.. 发表人 Verdana 发表于 08月19日
谢谢verdana,不过你的方法只是从数学的.. 发表人 yquan 发表于 08月19日
  1. 返回顶部

    Re: 强制类型转换的问题。

    2003年08月18日 发表人 yquan

    dd

  2. 返回顶部

    Re: 强制类型转换的问题。

    2003年08月19日 发表人 yhlong

    帮顶

  3. 返回顶部

    Re: 强制类型转换的问题。

    2003年08月19日 发表人 tmyu

    你有什么企图

  4. 返回顶部

    Re: 强制类型转换的问题。

    2003年08月19日 发表人 friendkey

    那你想用什么输出?

  5. 返回顶部

    Re: 强制类型转换的问题。

    2003年08月19日 发表人 yquan

    我想用echo直接输出就可以得到无符号的结果啊。

  6. 返回顶部

    Re: 强制类型转换的问题。

    2003年08月19日 发表人 bluesboy

    为此我也困惑

  7. 返回顶部

    Re: 强制类型转换的问题。

    2003年08月19日 发表人 Verdana

    这里并没有类型转换的问题啊,只是有符号到无符号的转换。
    用 sprintf / printf 的确非常的方便,如果不想用也可以做一次
    减法运算来解决。

    32 位操作中 integer 的范围是 -2147483648 到 2147483647

    所以求有符号的int值所对应的无符号的值94>

    2147483648*2 - 899213244 = 3395754052

    也94, 2的32次方加上有符号的integer数,这样就去掉符号了。

  8. 返回顶部

    Re: 强制类型转换的问题。

    2003年08月19日 发表人 yquan

    谢谢verdana,不过你的方法只是从数学的方法上来解决了这个问题,反正我现在做法更简单,先用dedbin函数,然后再bindec函数。
    其实这样也不错哦。




  9. 我有话要讲:(可以匿名发表, 发广告的有多远请滚多远!!!)

    昵称: 请输入验证码:


抢着回答

??

QUOTE: hoho

不好意思,JAVA里好像没什么人气,只能...

初学JAVA,遇到问题,实在是解决不了,已经在几个论坛里问了几天...

我想问问这样的技术在怎么做的?

看这里的图片说明!!! http://www.x-menu.com/Files/200...

谁是这里的抗霸子??找你有事商量啊?

我想改一下我的名字啊?怎么改啊 可以改吗?? 我看就我一个人...

播放rpm文件

請問 我想在一個網頁上同時鏈接兩個.rpm文件,也就是同時播放兩...

怪人

(转贴) 巴士日記之<遇上100%的女孩&g...

13/05/03(二) 我從來都不相信一見鍾情,因為我認為沒有了解,...

沈阳下雪了!

好大 好冷

明天巴豆看到后,请进来

巴豆,你的PP号上多少啊 告诉我噻

位运算问题

12^9的值是5 怎么得出来的

[]