c# – 无法应用位掩码
发布时间:2020-12-15 07:52:53 所属栏目:百科 来源:网络整理
导读:我正在制作一个马节目.我有马脸,并希望应用一点面具.佩戴钻头面罩时,只能看到马眼.首先,我必须将马面转换为数字.为此,我有一组位,包括0,0和1的马面. 我正在使用C#并将问题分解为部分: 将马的头部转换为数字 为它戴上一点面具 把位面罩放在马上 将数字蒙面马
我正在制作一个马节目.我有马脸,并希望应用一点面具.佩戴钻头面罩时,只能看到马眼.首先,我必须将马面转换为数字.为此,我有一组位,包括0,0和1的马面.
我正在使用C#并将问题分解为部分: >将马的头部转换为数字 在第4步,我希望只看到马眼,但我只看到“0”,这不是一个马脸. 这是我的所有代码,请不要质疑我的ASCII艺术与问题无关,除了它是原型,真正的程序将具有优越的图形. //the head of the horse string head = "# #" + "########" + "#O O#" + "# #" + "# #" + "#= =#" + " #====# " + " #### "; //digitize the horse into bits of binary string binaryHead = head.Replace('#','0').Replace('=','0').Replace(' ','0').Replace('O','1'); long face = Convert.ToInt64(binaryHead,2); //make a bit mask with holes for the eyes string mask = "22222111" + "22222111" + "10111101" + "22222111" + "22222111" + "22222111" + "22222111" + "22222111"; //apply the bit mask using C# long maskBits = Convert.ToInt64(mask,2); string eyesOnly = Convert.ToString(face & maskBits,2); //eyesOnly is "0"....WHAT??? It should be more than that. WHERE IS THE HORSE?? //It should look like this: // "00000000" + // "00000000" + // "01000010" + // "00000000" + // "00000000" + // "00000000" + // "00000000" + // "00000000"; 我怀疑转换有问题,我已经尝试了各种各样的事情,比如转换为字节数组并用空格格式化字符串但没有运气.我想知道这个问题是否可能是NP难的. 解决方法
面部和眼睛只有没有共同的1位. maskBits除了眼睛外都会留下一切.交换0和1,或使用?运算符翻转maskBits.并给它一个更好的名称,以便明确它是一个掩码:bitmaskForNotEyes.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |