c# 十六进制转为字节_如何在C#中将具有十六进制内容的字节数组转换为具有十进制的字符串...
语言:C#
基本上我有一个包含十六进制内容的字节数组。
我想将其转换为字符串,十六进制内容也应转换为十进制内容。
我的最终字符串应包含初始字节数组中包含的十六进制十进制值的等效十进制值。
我使用将字节数组转换为字符串
System.Text.Encoding.GetEncoding(1251).GetString
但是如何将十六进制转换为十进制?
即使我们可以分多个步骤进行操作,也不是问题。
抱歉提出愚蠢的疑问,请保留。
提前致谢!
您能举个例子-转换为十进制平均值{0x1,0x0,0x3}会变成字符串" 1,0,3"还是" 259"或" 719"?
您的意思还不清楚。
字节数组仅包含字节值-它们只是数字。换一种说法:
byte x = 0x20;
byte y = 32;
完全相同-它们都将值设为32。
现在,如果要将字节数组转换为数字,请查看BitConverter及其类似BitConverter.ToInt32的方法。这会将字节数组转换为数字(在特定情况下为int)-然后,您可以在数字上调用ToString()以获得小数形式的字符串。
您的原始数据有多少个字节?这将是确定要调用哪个BitConverter方法的关键因素。您还需要知道数据的字节序-如果"普通" .NET中的BitConverter是小字节序;如果您的数据确实是big-endian,则您可能对我的MiscUtil库中的EndianBitConverter类感兴趣。
如果您的数组确实包含数字的十六进制表示形式的字符代码,那么您就不必费心解码。由于这些字符的字符代码在所有常规编码中都是相同的,因此您只需将字节转换为字符即可。
我写了一个扩展程序,将字符流解析为字节流:
static class Hex {
public static IEnumerable ParseHex(this IEnumerable chars) {
int buffer = 0;
bool first = true;
foreach (char c in chars) {
int b = (c - '0') % 32;
if (b > 9) b -= 7;
if (first) {
buffer |= b << 4;
} else {
yield return (byte)(buffer | b);
buffer = 0;
}
first = !first;
}
if (!first) {
yield return (byte)buffer;
}
}
}
(如果有人识别出部分代码,则基于我在此答案中的代码。)
用法:
byte[] data = { 48, 70, 51, 67, 70, 56, 48, 55, 57, 49 };
string result = string.Join(",",
data.Cast().ParseHex().Select(b => b.ToString()).ToArray()
);
我有点不确定您要做什么。您是否要创建用逗号分隔的十进制数字字符串-例如:
byte[] hexValues = { 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF };
string decimalValuesAsStringList = string.Join(",", hexValues.Select(i => i.ToString()).ToArray());
...或像这样:
char[] hexCharacters = { '9', 'A', 'B', 'C', 'D', 'E', 'F' };
byte[] hexValues = hexCharacters.Select(c => Convert.ToByte(c)).ToArray();
string decimalValuesAsStringList = string.Join(",", hexValues.Select(i => Convert.ToInt32(((char)i).ToString(), 16).ToString()).ToArray());
c# 十六进制转为字节_如何在C#中将具有十六进制内容的字节数组转换为具有十进制的字符串...相关推荐
- python列表转字节_如何在Python中将十进制数转换为字节列表
How do you turn a long unsigned int into a list of four bytes in hexidecimal? Example... 777007543 = ...
- scala 字符串转换数组_如何在Scala中将字节数组转换为字符串?
scala 字符串转换数组 Byte Array in Scala is an array of elements of a byte type. String in Scala is a colle ...
- 在java读字符串入文件_如何在java中将文件读入字符串?
我已经将文件读入String. 该文件包含各种名称,每行一个名称. 现在的问题是我想在String数组中使用这些名称. 为此我写了以下代码: String [] names = fileString. ...
- java中将查询数据导出_如何在R中将数据框导出到Excel
java中将查询数据导出 What if I tell, that you can export data frames to excel in R within a couple of minute ...
- java 方法当参数_如何在Java中将函数作为参数传递?
如何在Java中将函数作为参数传递? 这个问题在这里已有答案: Java Pass方法作为参数 14个答案 是否可以将方法作为参 ...
- wordpress添加媒体_如何在WordPress中添加精选内容滑块
wordpress添加媒体 Do you want to add a featured content slider like Yahoo or ESPN? Many popular sites us ...
- java中long如何使用_如何在Java中将long转换为int?
问题 如何在Java中将long转换为int? #1 热门回答(218 赞) 简单类型转换应该这样做: long l = 100000; int i = (int) l; 但请注意,大数(通常大于21 ...
- scala 字符串转换数组_如何在Scala中将十六进制字符串转换为字节数组?
scala 字符串转换数组 Hex String in Scala denotes value in hexadecimal number system i.e. base 16 number sys ...
- java 打印16进制数组_如何在Java中将字节数组转换为十六进制字符串?
从这里的讨论,特别是这个答案,这是我目前使用的功能:private final static char[] hexArray = "0123456789ABCDEF".toChar ...
- java中将字符串顺序反传转_如何在Java中将字符串序列化的Erlang术语反序列化为JInterface对象?...
我的接口系统提供了来自Erlang世界的结果,该结果发送了erlang术语的字符串表示形式,例如元组列表: [ {"key1" , ["AAA","B ...
最新文章
- SpringBoot 之 MVC
- 解决sublime 乱码显示GBK编码文件
- 2018年,JavaScript都经历了什么?
- Python通过urllib访问网页
- [CTO札记]盛大游戏上市,是对《文化产业振兴规划》的响应
- python3获取当前日期_如何在python3中获取当前日期和时间? – Python3教程
- Python捕获 Warning 警告
- 978. 最长湍流子数组
- 几点预防内存泄露的小建议
- 爬虫实战1:爬取哔哩哔哩主播的头像以昵称命名保存到本地文件
- 拼字 公式_蒸汽机的未来,3D拼字游戏等等
- Dynamic Scoping (动态范围)
- 【瑞吉外卖】学习笔记-day1:项目介绍及后台初识
- 唤客猫获客营销之全员激励
- NUAA无线传感器网络 复习重点整理
- 智能秤方案设计——蓝牙体脂秤PCBA软硬件端功能说明
- buctoj-2022寒假集训4
- 计算机组成原理基础知识试题及答案,[电脑基础知识]计算机组成原理试题库.doc...
- 编程逻辑性思维的重要性
- java写一个登录系统_用java写一个用户登陆界面
热门文章
- .NET 2.0中的企业库异常处理块
- 微软一个关于team editon vs 2005文章的集锦页面
- 11.无限分类表的数据库设计
- 网页编码utf8 gb2312 gbk的区别
- [2019杭电多校第七场][hdu6656]Kejin Player
- 【模拟】Workout for a Dumbbell
- zabbix3.x web设置手册(2)
- 浙江大学PAT上机题解析之1050. String Subtraction (20)
- VKTM进程消耗大量CPU的问题
- 错误;找不到或无法加载主类 com.sun.tools.javac.main的解决方案