List<double> lstt = new List<double>(); String ssssssssssssss = Convert.ToString(25, 2); int index = ssssssssssssss.Length - 1; foreach(char ch in ssssssssssssss){ if (ch == '1') { lstt.Add(Math.Pow(2, index)); } index--; }
public void Func(int input) { int m = 1; for(int i = 1;i<32;i++) { if(m & input == m) Console.WriteLine(m); m = m << 1; } }
/// <summary> /// 把一个任意正整数拆解成几个是2的n次方的数 /// </summary> /// <param name="num">传入的正整数</param> /// <returns>结果字符串:传入正整数51,输出结果为"2的0次方+2的1次方+2的4次方+2的5次方" </returns> public string Fun(int num) { string outputStr = ""; string ss = Convert.ToString(num, 2); List<char> list = list = new List<char>(); foreach (char s in ss) { list.Add(s); } int j = 0; //控制幂 for (int i = list.Count - 1; i > -1; i--) { if (list[i] == '1') { outputStr += "2的" + j + "次方+"; } j++; } outputStr = outputStr.Substring(0, outputStr.Length - 1); //去最后一个"+"号 return outputStr; }
int v = 123455; int x = 0, y = 1; string s; while(y <= v) { if((v & (1 << x)) == 1) { s += pow(2, x).tostring() + " + "; } x++; y = pow(2, x); }
谢谢 就是用“与”操作方便实现对checkboxlist的选中显示。
int controlTPSumValue = int.Parse(model.ControlTP.ToString());
for (int i = 0; i < cblControlTP.Items.Count; i++) { if ((controlTPSumValue & int.Parse(cblControlTP.Items[i].Value)) > 0) cblControlTP.Items[i].Selected = true; }
String ssssssssssssss = Convert.ToString(25, 2);
int index = ssssssssssssss.Length - 1;
foreach(char ch in ssssssssssssss){
if (ch == '1')
{
lstt.Add(Math.Pow(2, index));
}
index--;
}
{
int m = 1;
for(int i = 1;i<32;i++)
{
if(m & input == m)
Console.WriteLine(m); m = m << 1;
}
}
/// <summary>
/// 把一个任意正整数拆解成几个是2的n次方的数
/// </summary>
/// <param name="num">传入的正整数</param>
/// <returns>结果字符串:传入正整数51,输出结果为"2的0次方+2的1次方+2的4次方+2的5次方" </returns>
public string Fun(int num)
{
string outputStr = "";
string ss = Convert.ToString(num, 2);
List<char> list = list = new List<char>();
foreach (char s in ss)
{
list.Add(s);
}
int j = 0; //控制幂
for (int i = list.Count - 1; i > -1; i--)
{
if (list[i] == '1')
{
outputStr += "2的" + j + "次方+";
}
j++;
}
outputStr = outputStr.Substring(0, outputStr.Length - 1); //去最后一个"+"号
return outputStr;
}
int v = 123455;
int x = 0, y = 1;
string s;
while(y <= v)
{
if((v & (1 << x)) == 1)
{
s += pow(2, x).tostring() + " + ";
}
x++;
y = pow(2, x);
}
for (int i = 0; i < cblControlTP.Items.Count; i++)
{
if ((controlTPSumValue & int.Parse(cblControlTP.Items[i].Value)) > 0)
cblControlTP.Items[i].Selected = true;
}