【发布时间】:2021-09-21 14:38:53
【问题描述】:
我需要将字符串形式的整数转换为二进制表示的字节数组。
例如:我有一个值"29",然后将此值转换为二进制等效值2-> 0010 and 9-> 1001 并将其存储在0th index has 0010 and 1st index has 1001 的字节数组中。
我已经尝试过了,但这给了我一个 8 个字节的数组。
var val = "29".ToCharArray();
var a = Convert.ToString(Convert.ToInt32(Convert.ToString(val[0])), 2).PadLeft(4, '0');
var b = Convert.ToString(Convert.ToInt32(Convert.ToString(val[1])), 2).PadLeft(4, '0');
var c = a.ToList();
c.ForEach(x => sb.Append(Convert.ToString(x) + " "));
var f = sb.ToString().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var g = f.ToList();
byte[] buff = new byte[g.Count];
for (int z = 0; z < g.Count; z++)
{
buff[z] = (byte)Convert.ToInt32(g[z]);
}
var h = b.ToList();
sb.Clear();
h.ForEach(x => sb.Append(Convert.ToString(x) + " "));
var i = sb.ToString().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var j = i.ToList();
byte[] buff2 = new byte[j.Count];
for (int k = 0; k < j.Count; k++)
{
buff2[k] = (byte)Convert.ToInt32(j[k]);
}
byte[] buffer = buff.Concat(buff2).ToArray();
【问题讨论】:
-
是的,这绝对是可能的。
-
到目前为止,您自己尝试过什么?你遇到了什么问题?你研究了什么?请编辑您的问题以包含更多信息。我推荐taking the tour,以及阅读how to ask a good question 和what's on topic。
-
你能推荐一个方法吗?
-
我已经添加了我尝试过的代码。请检查一下
-
您可能想看看 BitConverter 类及其 GetBytes 方法。输入是字符串类型还是数字类型?
标签: c# arrays binary type-conversion byte