我有一个byte[]从我碰巧知道包含UTF-8的文件加载的数组.在一些调试代码中,我需要将其转换为字符串.有没有一个班轮可以做到这一点?
在封面下它应该只是一个分配和一个memcopy,所以即使它没有实现,它应该是可能的.
如何将a转换byte[]为string?我每次尝试都会得到
System.Byte []
而不是价值.
另外,我如何获得十六进制而不是十进制的值?
我们可以使用C#中的内置函数将十六进制字符串转换为字节数组,还是必须为此创建自定义方法?
我有一个十六进制字符串(例如0CFE9E69271557822FE715A8B3E564BE),我想将其作为字节写入文件.例如,
Offset 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
00000000 0C FE 9E 69 27 15 57 82 2F E7 15 A8 B3 E5 64 BE .þži'.W‚/ç.¨³åd¾
Run Code Online (Sandbox Code Playgroud)
如何使用.NET和C#实现这一目标?
我希望byte[]使用使用SHA1Algorithm的哈希给定数组SHA1Managed.
该byte[]散列将来自单元测试.
预期的散列是0d71ee4472658cd5874c5578410a9d8611fc9aef(区分大小写).
我怎样才能做到这一点?
public string Hash(byte [] temp)
{
using (SHA1Managed sha1 = new SHA1Managed())
{
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个函数来获取字符串和sha512就像这样?
public string SHA512(string input)
{
string hash;
~magic~
return hash;
}
Run Code Online (Sandbox Code Playgroud)
魔术应该是什么?
我有一个字节数组,我想存储为字符串.我可以这样做:
byte[] array = new byte[] { 0x01, 0x02, 0x03, 0x04 };
string s = System.BitConverter.ToString(array);
// Result: s = "01-02-03-04"
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.有谁知道我怎么回到阵列?没有BitConverter.GetBytes()的重载,它接受一个字符串,这似乎是一个讨厌的解决方法,将字符串分解为一个字符串数组,然后转换它们中的每一个.
所讨论的数组可以是可变长度的,可能是大约20个字节.
这似乎是一个容易出问题,但我无法弄清楚.
我需要转换此字符<字节(十六进制表示),但如果我使用
byte b = Convert.ToByte('<');
Run Code Online (Sandbox Code Playgroud)
我得到60(十进制表示)而不是3c.
我理解不安全的代码更适合访问Windows API之类的东西并进行不安全的类型转换,而不是编写更高性能的代码,但我想问你是否注意到使用它时在实际应用程序中有任何显着的性能改进与安全的c#代码相比.
我正在使用以下项目,以便在服务器和客户端套接字之间创建异步通信.当我运行这些项目时,我正在从客户端向服务器发送消息,因此我收到了消息:
数据:记录EOF,向客户端发送14个字节.
我想要实现的是使用套接字从服务器向客户端发送布尔变量.这样做是否可行,我想知道因为在代码中我有等待和监听的服务器以及发送数据的客户端,我可以这样做吗?一般来说,我想要的是向几个客户端发送一个布尔值.为什么我需要文件结束才能发送字符串?是否有必要将所有内容转换为字符串?
编辑:一般来说,我想要的是将一个变量从一台计算机发送到另外两台,以便在所有计算机上同时开始一个过程.事实上,要创建一个切换器,它可以同时在2-3台机器上发出信号.
我尝试将以下代码用于服务器:
class Program
{
const int PORT_NO = 2201;
const string SERVER_IP = "127.0.0.1";
static void Main(string[] args)
{
//---listen at the specified IP and port no.---
IPAddress localAdd = IPAddress.Parse(SERVER_IP);
TcpListener listener = new TcpListener(localAdd, PORT_NO);
Console.WriteLine("Listening...");
listener.Start();
//---incoming client connected---
TcpClient client = listener.AcceptTcpClient();
//---get the incoming data through a network stream---
NetworkStream nwStream = client.GetStream();
byte[] buffer = new byte[client.ReceiveBufferSize];
//---read incoming stream---
int bytesRead = …Run Code Online (Sandbox Code Playgroud)