日期:2014-05-17  浏览次数:21173 次

C# 有没有人知道从2的0次方到2的9次方的和有多少种组合?又或者……
http://topic.csdn.net/u/20120830/10/cc0149ea-7165-4ec0-9e23-38dbcf99293d.html?10349

烦请大家移步,两边都会给分!那边人气太冷清了,这么久过去了,帖子都不带沉的。

------解决方案--------------------

------解决方案--------------------
你可以将checkbox的tag属性于enum值对应,然后通过与或操作来确定,比如
有一个数 xxx,
xxx = xml | eml | doc;
checkbox1.Tag = eml;
if ((xxx & Convert.ToInt32(checkbox1.Tag) != 0)
checkbox1.Checked = true;//tag值包括在这个数中
------解决方案--------------------
其实这不是一个C#问题,这是一个算法问题,或者,单纯地讲,这是高中数学的问题。

------解决方案--------------------
2^0到2^9可以通过位或运算生成1-512
------解决方案--------------------
这还用算吗,2^10 - 1
------解决方案--------------------
用位运算
C# code

if ((FTvalue & (int)FileType.xml)!=0)
Messagebox.Show("选中了xml");

------解决方案--------------------
不用管有多少种组合,一个if判断一个类型,写10个if就可以判断所有的类型了