| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 441 人关注过本帖
标题:关于位运算的问题,寻求解答
只看楼主 加入收藏
我要吃西瓜
该用户已被删除
收藏
已结贴  问题点数:20 回复次数:5 
关于位运算的问题,寻求解答
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: 运算 解答 
2010-07-06 10:34
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
收藏
得分:20 
a=a&052;052表示的是八进制的数,&的运算时按“与”运算,也就是把前后的数都化为二进制后各个位置对齐,在相同位置上的值都为1时结果为1,否则全为0;例如:  
     00000011       3
(&)00000101       5     
————————
     00000001        1
 即3&5=1,而不是8;呵呵呵

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-07-06 10:44
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
收藏
得分:0 
int x=123,y=0x0f;Ox0f;Ox表示十六进制,整个Ox0f表示的是一个十六进制常数;
十六进制与二进制的转化表:0=0000;1=0001;2=0010;3=0011;4=0100;5=0101;6=0110;7=0111;8=1000;9=1001;A=1010;B=1011
C=1100;D=1101;E=1110;F=1111;把0f按相应的方式转化为二进制位:00001111
八进制与二进制的转化表:0=000;1=001;2=010;3=011;4=100;5=101;6=110;7=111;(前面的表示八进制,后面的二进制)例如052转化为二进制052(八)=000101010(二)

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-07-06 10:59
我要吃西瓜
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-07-06 14:41
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
收藏
得分:0 
-负数输出时用补码输出,把-1转化为补码时1111111111111111,按十六进制数出就是ffff,内存中存储负数的时候是用补码存储的,不能直接存储负数,必须先转换乘补码,转换补码的方式是:对原数字的二进制符号位(也就是第一位,第一位如果是1表示是负数,如果是0则是正数)保持不变后面的都取反,然后在末尾加1;
(-1)十=1000000000000001(二)=1111111111111110(取反)=11111111111111111111(加1)=ffff;

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-07-06 14:57
我要吃西瓜
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-07-06 18:56
快速回复:关于位运算的问题,寻求解答
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015167 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved