C#二进制掩码
之所以写这边文章,是因为在某些情况下,运用掩码来传递信息,显得非常简洁和方便.比如有2个参数共同确定1个实物.如牌,有花色和值.那么,传2个参数,显得非常繁琐,而且容易出错.
创新互联是一家专注于网站制作、网站设计与策划设计,乌拉特中网站建设哪家好?创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:乌拉特中等地区。乌拉特中做网站价格咨询:18980820575
那么定义 黑 , 红 , 梅 , 品 花色为 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 , 然后分别取得花色和值
可以做一个另外的一个测试 :
低位掩码 : 11(3) 高位掩码 : 1100(12)
测试代码如下 :
Console.WriteLine((2<<2)+1); Console.WriteLine((9&12)/4); Console.WriteLine(9 & 3);
得到结果:
OK , 牌花色“2” , 值 “1”
当前文章:C#二进制掩码
网页地址:http://scpingwu.com/article/igcgoh.html