网上有段例子 string toBCD(int a) { int shl; string ret = string.Empty; while (a > 0) { string c = string.Empty; shl = (a % 10); a /= 10; while (shl > 0) { c = (shl % 2).ToString() + c; shl /= 2; } ret = c.PadLeft(4, '0') + ret; } return ret; }
int x=97; ///要对整数97BCD编码 byte m=(((byte)7)<<4)+(((byte)9)); //得到的m即为数字97和BCD码字节表现形式 string bs=(((byte)(m<<4))>>4)).ToString()+"+"+(m>>4).ToString();bs即为从BCD码解得的字符串
int toBCD(int a){ int ret = 0, shl = 0; while (a > 0) { ret |= (a % 10) << shl; a /= 10; shl += 4; } return ret; }
8421直接转换就好了 for (int i = 0; i != 10; i++) { string _Value = Convert.ToString(i, 2).PadLeft(4,'0'); MessageBox.Show(_Value); }其他码可以参考 http://blog.csdn.net/zgke/archive/2009/04/02/4042567.aspx
public static string ToBCD(int number) { string numStr = number.ToString(); StringBuilder BcdBuilder = new StringBuilder(); foreach (char ch in numStr) { BcdBuilder.Append(Convert.ToString(ch - '0', 2).PadLeft(4,'0' )); } return BcdBuilder.ToString(); }
来人帮忙啊!
0=0000
1=0001
2=0010
3=0011
4=0100
5=0101
6=0110
7=0111
8=1000
9=1001 这是如何算出来的?
string toBCD(int a)
{
int shl;
string ret = string.Empty;
while (a > 0)
{
string c = string.Empty;
shl = (a % 10);
a /= 10;
while (shl > 0)
{
c = (shl % 2).ToString() + c;
shl /= 2;
}
ret = c.PadLeft(4, '0') + ret;
}
return ret;
}
byte m=(((byte)7)<<4)+(((byte)9));
//得到的m即为数字97和BCD码字节表现形式 string bs=(((byte)(m<<4))>>4)).ToString()+"+"+(m>>4).ToString();bs即为从BCD码解得的字符串
int ret = 0, shl = 0;
while (a > 0) {
ret |= (a % 10) << shl;
a /= 10;
shl += 4;
}
return ret;
}
for (int i = 0; i != 10; i++)
{
string _Value = Convert.ToString(i, 2).PadLeft(4,'0'); MessageBox.Show(_Value);
}其他码可以参考
http://blog.csdn.net/zgke/archive/2009/04/02/4042567.aspx
public static string ToBCD(int number)
{
string numStr = number.ToString();
StringBuilder BcdBuilder = new StringBuilder();
foreach (char ch in numStr)
{
BcdBuilder.Append(Convert.ToString(ch - '0', 2).PadLeft(4,'0' ));
}
return BcdBuilder.ToString();
}