数据库有个字段是开通服务吧,可以开通好几个不同的服务,每个服务类型是2的n次方。例如,1为第一种服务,2为第二种服务,4为第三种服务,8为第四种服务,类推,2的n次方。
然后读取出来分别获取哪几个服务,于是就写了个小方法,分别获取
public static List<string> GetListByBinary(int? org) { List<string> list = new List<string>(); try { string dec = System.Convert.ToString(org.Value, 2); char[] arr = dec.ToCharArray(); System.Array.Reverse(arr); for (int i = 0; i < arr.Length; i++) { if (arr[i] == ‘1‘) { double fanDec = System.Math.Pow(2, i); list.Add(System.Convert.ToString(fanDec)); } } } catch { } return list; }
这样传入一个十进制的值,就可以得到2的次方的十进制所有,例如传入15,可以得到,嗯。。。自己试试,忘记了。。。
原文:http://www.cnblogs.com/notbad/p/3670293.html