c# - 将第一个数字替换为一个字节中的第二个数字

标签 c# .net

我想做的是遍历字节数组中的值,获取每个值的第一个数字,然后将其位置与第二个数字交换,因此35将是53,24将是42。我必须将所有内容都转换为字符串,这似乎有点过大了

我已经尝试了一段时间,但到目前为止,我只想到可以将所有内容转换为字符串,然后对它们进行处理,似乎有些笨拙。

最佳答案

听起来您想在每个字节中交换高半字节和低半字节。

0x35; // High nibble = 3,  Low Nibble = 5


为此,您想将高半字节右移4位(使其成为低半字节),并将低半字节左移4位(使其成为高半字节)。

var ar = new byte[] { 0x35, 0x24 };

for (int i=0; i<ar.Length; i++) {
    byte b = ar[i];
    b =  (b>>4) | ((b&0x0F)<<4);
    ar[i] = b;
}

关于c# - 将第一个数字替换为一个字节中的第二个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13335293/

相关文章:

c# - 隐藏容器但不隐藏位于其上的文本

c# - 手动解析 InstancePerRequest 类型时未收到 Autofac 相同的注入(inject)实例

.net - .Net 中的 XSD 正则表达式模式导致应用程序挂起

c# - 尝试上传到 Azure blob 时收到错误消息 "The TLS version of the connection is not permitted on this storage account."

c# - 我应该先用 C# 编写然后移植到 Web 吗?

c# - 使用 VS Isolated Shell 作为 UI 脚手架

javascript - Ajax 方法在十进制时没有命中 Controller

c# - 将列表中的值分配给不包括空值的列表

c# - 如何在linq中包含()嵌套子实体

c# - 使用 XML WebApi