Jon*_*eet 12
你绝对可以转换sbyte[]为byte[]-我几乎可以保证你的Java代码将真正被处理的字节数组作为无符号.(或者换句话说:base64只根据无符号字节定义 ......)
只需转换为byte[]并致电Convert.ToBase64String.转换到byte[]实际上非常简单 - 虽然C#本身不提供两者之间的转换,但CLR很乐意执行引用转换,因此您只需要欺骗C#编译器:
sbyte[] x = { -1, 1 };
byte[] y = (byte[]) (object) x;
Console.WriteLine(Convert.ToBase64String(y));
Run Code Online (Sandbox Code Playgroud)
如果你想拥有正版, byte[]你可以复制:
byte[] y = new byte[x.Length];
Buffer.BlockCopy(x, 0, y, 0, y.Length);
Run Code Online (Sandbox Code Playgroud)
但就个人而言,我坚持使用第一种形式.
class Program
{
static void Main()
{
sbyte[] signedByteArray = { -2, -1, 0, 1, 2 };
byte[] unsignedByteArray = (byte[])(Array)signedByteArray;
Console.WriteLine(Convert.ToBase64String(unsignedByteArray));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4676 次 |
| 最近记录: |