【发布时间】:2012-03-18 06:11:06
【问题描述】:
如果我从一个源获得 8 位并将这 8 位放入一个字节中,那么我该如何存储这个字节?每个字节都是消息的一部分(曾经是一个字符串)我不知道我最终会得到多少字节 - 因此使用字节数组并不是一个真正的选择。我可以将它存储在一个字符串中吗?我希望在获得所有字节后能够重新组装字符串,我该怎么做?
使用下面的方法将8位变成一个字节..
public byte GetByte(BitArray array){
Byte byt = 0;
for (int i = 7; i >= 0; i--){
byt = (byte)((byt << 1) | (array[i] ? 1 : 0));
}
return byt;
}
我可以通过这样做来调用它...
byte valueInByte = GetByte(bitsOfMessage);
我在想我可以做到这一点......
bytesOfTheMessage += (valueInByte.ToString() + "+"); //bytesOfTheMessage is a string
但是...我在一个字符串中有一堆字节值...我需要提取和转换,但是我要转换成什么。我得到的第一个值是“138”,它应该是数字 2 - 当转换回它的原始形式时。我可以说字符串中存在所有正确的值,因为存在模式并且它与我转换为位的原始字符串一致..知道我应该做什么吗?
【问题讨论】:
-
字节数组怎么样?或列表
? -
@MitchWheat 问题是我不知道我将返回的字节数(总共)..你不能当场扩展一个字节数组..你'我必须继续制作一个新的......
-
...这与添加到字符串没有什么不同(它们是不可变的)
-
是的,这也是我不想使用它的另一个原因。
-
您考虑过作为框架一部分的BitConvertor 类吗?
标签: c# .net winforms bytearray byte