C#关于字节数组转换为二进制字符串方法

homecs 2010-12-02 08:23:27
1:比如byte[] array = { 0x00,0xFF, 0xAB };
转换成01字符串=00000000,11111111,10101011


2:取字符串中的1010(二进制),怎么计算=A(十六进制)
不用直接乘的方法

谢谢指点呀
...全文
2069 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
onenewsmile 2010-12-02
  • 打赏
  • 举报
回复
用Convert这个转换函数
灬嘻嘻哈哈灬 2010-12-02
  • 打赏
  • 举报
回复
            byte[] array = { 0x00, 0xFF, 0xAB };
string binary = Convert.ToString(array[0], 2).PadLeft(8, '0');
Console.WriteLine(binary);
            string bin = "1010";
string hex = Convert.ToString(Convert.ToInt32(bin, 2), 16).ToUpper();
Console.WriteLine(hex);
homecs 2010-12-02
  • 打赏
  • 举报
回复
当然上面一位的方法把字节转换为整数,那怎样把字符串的1010转化为字节1010,这好像也比较麻烦
homecs 2010-12-02
  • 打赏
  • 举报
回复
public int Get(byte by)
{
int nCount = 0;
byte byBit = 1;
for (int i = 0; i < 8; i++)
{
if ((by & byBit) != 0)
nCount++;
byBit <<= 1;
}
return nCount;
}

这个方法是把字节转换成整数,而我是将字符串转换成整数,不过还是谢谢上面两位
homecs 2010-12-02
  • 打赏
  • 举报
回复
System.Convert.ToString(buffer[0], 2);这个方法不能转换象5转换过来以后是101,而不是我想要的0101。

wuyq11 2010-12-02
  • 打赏
  • 举报
回复
public int Get(byte by)
{
int nCount = 0;
byte byBit = 1;
for (int i = 0; i < 8; i++)
{
if ((by & byBit) != 0)
nCount++;
byBit <<= 1;
}
return nCount;
}
wuyq11 2010-12-02
  • 打赏
  • 举报
回复
System.Convert.ToString(buffer[0], 2);
homecs 2010-12-02
  • 打赏
  • 举报
回复
咋没人给力呀,谢谢

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧