温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C# 二进制掩码

发布时间:2020-07-27 09:35:12 来源:网络 阅读:1433 作者:Aonaufly 栏目:编程语言

之所以写这边文章,是因为在某些情况下,运用掩码来传递信息,显得非常简洁和方便.比如有2个参数共同确定1个实物.如牌,有花色和值.那么,传2个参数,显得非常繁琐,而且容易出错.

那么定义 黑 , 红 , 梅 , 品 花色为 3,2,1, 0, 大小王为4 .1~k :分别为1~13.小王14 , 大王15 .大王最大,值的二进制正好为 : 1111(注意必须全为1 , 十进制为15) 即为牌值掩码 , 则花色掩码为 11110000(十进制为240)

(11111111^1111 = 11110000)

 

            
            Console.WriteLine( ( 3<<4 ) + 1); 
            Console.WriteLine( (49&240)/16 );//240 为花色掩码 11110000    获得花色
            Console.WriteLine(49&15);//15 为牌值掩码    获得牌值

上面代码 : 3花色 , 1 : 牌值

<<4 : 花色掩码 11110000 后面的0占4字节

至于/16 : 关于牌值的掩码 : 1111(二进制) 占4bit,2^4 = 16

得到49 , 然后分别取得花色和值

C# 二进制掩码


可以做一个另外的一个测试 :

低位掩码 : 11(3) 高位掩码 : 1100(12)

测试代码如下 :

 

            Console.WriteLine((2<<2)+1);
            Console.WriteLine((9&12)/4);
            Console.WriteLine(9 & 3);

得到结果:

C# 二进制掩码

OK , 牌花色“2” , 值 “1”

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI