【发布时间】:2018-12-23 02:37:59
【问题描述】:
问题是将非ASCII字符转换为二进制,反之亦然
string of bits to string of char
string result = "";
while (value.Length > 0)
{ var first8 = value.Substring(0, 8);
value = value.Substring(8);
var number = Convert.ToInt64(first8, 2);
result += (char)number;
和 字符串到位串
string S = "";
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
for (int i = 0; i < asciiBytes.Length; i++)
for (int j = 0; j < 8; j++)
{
S += (asciiBytes[i] & 0x80) > 0 ? "1" : "0";
asciiBytes[i] <<= 1;
}
return S;
如果它是最好的,你能纠正我的代码吗?
【问题讨论】:
-
例如:位串="0011111110110101001111110110111100111111110110110011111101101111" 字符串="?µ?o?Û?o"
-
您是否收到任何错误或收到意外输出
-
什么是第一位的?位串还是字符数组?或者你是必须从某种来源生产两者的人?这是一个不容错过的重要细节,因为整个过程都依赖于此。
-
@preciousbetine > 我的代码的输出是意外的......如果第一个代码的结果进入第二个代码的输入,那么输出与第一个代码中的输入不相等......跨度>
-
@Jimi > 我的工作是密码学......这对我来说在我的工作中处理二进制文件是必不可少的。它必须首先在文本框中输入字符,它必须更改为二进制而不是执行一些函数来分散位然后返回字符。但是,如果我使用反函数,这个结束字符必须回到相等的输入字符。问候
标签: c#