为了账号安全,请及时绑定邮箱和手机立即绑定

这些都是什么意思呢?完全看不懂

第一个(低端)字节 :8143>>0*8&0xff=(11001111)=207 

......8413>>1*8&0xff=(00011111)=31 

....

... 

这些是什么意思啊?8143>>0*8&0xff=(11001111)=207  ??完全不明白

正在回答

2 回答

8143转化为二进制数(00000000 00000000 00011111 11001111)

第一个低八位(11001111):8143 >> 0*8(右移0位)与上0xff(11111111) 得出结果 为(11001111)。

如果11001111是一个无符号的,转为十进制为207,

如果是一个有符号的,转化为十进制为-49.

以此类推。


1 回复 有任何疑惑可以回复我~
#1

帅弟弟 提问者

请问为什么要右移0位?
2016-01-09 回复 有任何疑惑可以回复我~
#2

Its_forever 回复 帅弟弟 提问者

8143右移0位就是(00000000 00000000 00011111 11001111)这个数不动,和十六进制 0xff:11111111进行 & 运算。 &0xff的功能就是屏蔽掉前面24位取得最后8位。 8143右移1位就是(00000000 00000000 00011111 11001111)这个数变成(00000000 00000000 00000000 00011111),和十六进制 0xff:11111111进行 & 运算。得到00011111
2016-01-09 回复 有任何疑惑可以回复我~
#3

帅弟弟 提问者

非常感谢!
2016-01-10 回复 有任何疑惑可以回复我~
#4

激流勇进__ 回复 Its_forever

第二段话不是右移1位吧。是右移8位
2016-02-19 回复 有任何疑惑可以回复我~
查看1条回复

0xff表示什么

为什么要和16进制进行与运算

还有0xfff

0 回复 有任何疑惑可以回复我~
#1

幕布斯4560615

0x表示16进制,FF对应的二进制就是1111 1111
2016-05-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
二进制基础
  • 参与学习       99871    人
  • 解答问题       210    个

二进制是计算机唯一能识别的语言,是学习计算机技术必备的知识

进入课程

这些都是什么意思呢?完全看不懂

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信