这个表示的含义

liujun3512159 2010-01-28 04:56:10
int rp = 0xff << 24 | 0xff << 16;
int bp = 0xff << 24 | 0xff;
int wp = 0xff << 24 | 0xff << 16 | 0xff << 8 | 0xff;
看不懂这些,请帮我说说,这些怎么做哦?

我通过debug 跟踪发现,这3个变量的值是
rp=-65536
bp=-16776961
wp=-1
它是怎么算的哦?
...全文
163 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
苍蝇①号 2010-01-28
  • 打赏
  • 举报
回复
int rp = 0xff < < 24 | 0xff < < 16
rp得到的数据为0xffff0000
int bp = 0xff < < 24 | 0xff;
bp得到的数据为0xff0000ff
int wp = 0xff < < 24 | 0xff < < 16 | 0xff < < 8 | 0xff;
wp得到的数据为0xffffffff
再因为java中的整数用补码表示,负数的值为取反加1,rp取反为0x0000ffff,再加1就等0x00010000,十进制为65536,因为是个负数所以为-65536
别的bp、wp依次类推
蛋黄车 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhuzeitou 的回复:]
引用 2 楼 lrbyantai 的回复:
有点像16进制的数据!!我也不知道怎么算的,没研究过


不是有点像,这个就是16进制= =
[/Quote]
在我打字的时候你已经回贴了,要是我早看到你的回贴我就不回了=_=!
zhuzeitou 2010-01-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lrbyantai 的回复:]
有点像16进制的数据!!我也不知道怎么算的,没研究过
[/Quote]

不是有点像,这个就是16进制= =
Sodino 2010-01-28
  • 打赏
  • 举报
回复
都是位运算
右位移<< 或运算|
  • 打赏
  • 举报
回复
0xff 0000,0000,0000,0000,0000,0000,1111,1111
蛋黄车 2010-01-28
  • 打赏
  • 举报
回复
有点像16进制的数据!!我也不知道怎么算的,没研究过
zhuzeitou 2010-01-28
  • 打赏
  • 举报
回复
位左移= =

0xff<<24=0xff000000
0xff<<16=0xff0000
0xff<<8=0xff00

rp=0xffff0000
bp=0xff0000ff
wp=0xffffffff

这是16进制,再转化为10进制就好了

具体的网上查一下,这个是最最基础的东西了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧