A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李栋 金牌黑马   /  2011-12-20 16:47  /  2683 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李栋 于 2012-12-25 20:54 编辑

请删除         

12 个回复

倒序浏览
好久没见了,呵呵
temp&15:15不就是1111(二进制)吗,与“1”进行“&”得到就是其本身,即取出temp的低四位值(十六进制:四位二进制表示一位):

temp: 60(int四个字节)
二进制表示:
0000-0000 0000-0000 0000-0000 0011-1100
转换成十六进制:
0-0 0-0 0-0 3-c,即为0x3c
回复 使用道具 举报
宋双 黑马帝 2011-12-20 17:03:51
藤椅
temp&15是为了提取temp这个数2进制的后4位
15的二进制是1111,前面空位补0即 0000-0000 0000-0000 0000-0000 0000-1111
假设 temp此时是
  0000-0000 0000-0000 0010-0011 0100-0111
&0000-0000 0000-0000 0000-0000 0000-1111
---------------------------------------------------------------------
  0000-0000 0000-0000 0000-0000 0000-0111
这样就得到了后四位,转换16进制需要这四位,剩下的你应该懂得。
回复 使用道具 举报
本帖最后由 为梦而战 于 2011-12-20 17:14 编辑

如果你的电脑的32位的话那15的二进制是:0000-0000-0000-0000-0000-0000-0000-1111,&的特点是true +ture=true,true+false=false,false+false=false,
false+false=false;明白了&的特点后,你会发现其它整数&了15后,整数的最后四位的有效位就被保留了下来。然后按照每四位二进制转成一位十六进制,将&15之后保留下来的这四位转成一位十六进制数了。要是你想问为什么是&15呢?那是因为一位十六进制位对应四位二进制,正好15的最后四位都是1,可以参加&运算而获取到那个要&15的整数的最后四位。
比如:0000-0000-0000-0000-0000-0000-0101-1011     (91的二进制数)
       & 0000-0000-0000-0000-0000-0000-0000-1111       (15的二进制数)
----------------------------------------------------------------------------
          0000-0000-0000-0000-0000-0000-0000-1011
回复 使用道具 举报
与上15就是为了取最低四位的值   15换成二进制就是1111
比如:
   0000-0000 0000-0000 0000-0000 0000-0101
& 0000-0000 0000-0000 0000-0000 0000-1111

就就可以取出最低四位的值.就是0101
回复 使用道具 举报
15的二进制位的后四位是1111(前面都是0),&就是 真真为真,假假为真,真假为假(两个(真真、假假)一样&后还是之前的,不一样就是假)。把0当成假1当成真,&15(即1111)就是能取其最低四位,画出来,揣摩下就能懂的
回复 使用道具 举报
李栋 金牌黑马 2011-12-20 20:41:38
7#
monghuan 发表于 2011-12-20 17:03
好久没见了,呵呵
temp&15:15不就是1111(二进制)吗,与“1”进行“&”得到就是其本身,即取出temp的低四 ...

一看您的回答就突然明白了,呵呵,谢谢monghuan同学啦,我前一阶段事情多了一些,现在学习还在慢慢继续着,基础要打牢了,呵呵:handshake
回复 使用道具 举报
李栋 金牌黑马 2011-12-20 20:42:37
8#
宋双 发表于 2011-12-20 17:03
temp&15是为了提取temp这个数2进制的后4位
15的二进制是1111,前面空位补0即 0000-0000 0000-0000 0000-000 ...

谢谢宋双同学的解答啊,我明白了,谢谢
回复 使用道具 举报
李栋 金牌黑马 2011-12-20 20:43:49
9#
为梦而战 发表于 2011-12-20 17:06
如果你的电脑的32位的话那15的二进制是:0000-0000-0000-0000-0000-0000-0000-1111,&的特点是true +ture=t ...

谢谢为梦而战同学辛苦详细的解答啊,我明白了,谢谢:handshake
回复 使用道具 举报
李栋 金牌黑马 2011-12-20 20:44:20
10#
余松霖 发表于 2011-12-20 17:10
与上15就是为了取最低四位的值   15换成二进制就是1111
比如:
   0000-0000 0000-0000 0000-0000 0000-0101 ...

是,谢谢余松霖同学的解答,我明白了,呵呵
回复 使用道具 举报
李栋 金牌黑马 2011-12-20 20:45:04
11#
guofansen 发表于 2011-12-20 20:11
15的二进制位的后四位是1111(前面都是0),&就是 真真为真,假假为真,真假为假(两个(真真、假假)一样& ...

是,谢谢guofansen同学的解答,我明白了,谢谢
回复 使用道具 举报
郭繁森 黑马帝 2011-12-20 20:46:54
12#
李栋 发表于 2011-12-20 20:45
是,谢谢guofansen同学的解答,我明白了,谢谢

呵呵,共同进步吧
回复 使用道具 举报
李栋 金牌黑马 2011-12-20 20:57:43
13#
guofansen 发表于 2011-12-20 20:46
呵呵,共同进步吧

是:handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马