C# 十进制 字符串数字和byte数组间的转换

简介: 搬运自本人csdn 博客

前排声明,新手,着急用,所以摸着石头过河。感觉有好的办法没找到,不定期可能还会更新。

所有方案整合于互联网 如有雷同 都是我抄

  • 方案一

字符/字符串本身没有涉及进制转换,也就是没有溢出,那么直接调用byte.Parse(“字符数字”)即可,如果大于255 会报错,也请别这么干。

string a = "10 67 65 83 67 65 68 69 32 84 111 112 333 111 103 121 32 86 49 44 32 40 99 41 32 77 97 116 114 97 45 68 97 116 97 118 105 115 105 111 110";//务必255 以内 空格间隔 
byte[] intBuff = a.Select(x => byte.Parse(x)).ToArray();
string[] a = { "55", "88", "255" };
byte m = byte.Parse(a[1]);
  • 下面是另个方案

这样出来的intBuff是个4byte数组,不确定是否正常,感觉有点怪怪的,他这么转我大概能理解,可能是转换中间用了这么多的空位,如果要求不高可以用

            string a = "352";
            byte[] intBuff = BitConverter.GetBytes(i);
  • 后排讨论一个错误方案

这样出来的intBuff会变成三个字节的数组,大概是50几,结果忘了记录了,反正就是对应的ascii值,也就是说用这个函数转出来的是ascii对应的码值,按照玩单片机的搞法,其实也够了,三个数减去中间值,自己写个转换函数,一位一位的对应(减去ascii和实际数的差值)上乘以位权,比如5×100 +1×10+2,再除以256,溢出的赋值给高位,余数给低位,当然,这玩意是高级语言而且有丰富的库,所以我们最好还是不要自己实现????

            string a = "352";
            byte[] intBuff = Encoding.UTF8.GetBytes(a);

*说实话我觉得自己实现比较快。姑且,有这种转换函数吧,我玩labview是有直接转换的控件的,不知道为什么这个有点难找,不过也是我手头没有书,也没怎么学过只能网上找。
此外...十六进制的现成的转换方法有吗...*

ok 16进制的单个字节转换,代码如下

            string[] a = new[] { "0D" };
            int i = int.Parse(a[0],System.Globalization.NumberStyles.HexNumber);
目录
相关文章
|
2月前
|
开发框架 .NET C#
C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式
【10月更文挑战第9天】在 C#/.NET Core 中,有多种方法可以删除字符串的最后一个字符,包括使用 `Substring` 方法、`Remove` 方法、`ToCharArray` 与 `Array.Copy`、`StringBuilder`、正则表达式、循环遍历字符数组以及使用 LINQ 的 `SkipLast` 方法。
|
3月前
|
JavaScript
js 解析 byte数组 成字符串
js 解析 byte数组 成字符串
91 5
|
3月前
|
存储 C# 索引
C# 一分钟浅谈:数组与集合类的基本操作
【9月更文挑战第1天】本文详细介绍了C#中数组和集合类的基本操作,包括创建、访问、遍历及常见问题的解决方法。数组适用于固定长度的数据存储,而集合类如`List<T>`则提供了动态扩展的能力。文章通过示例代码展示了如何处理索引越界、数组长度不可变及集合容量不足等问题,并提供了解决方案。掌握这些基础知识可使程序更加高效和清晰。
87 2
|
3月前
|
开发框架 .NET 程序员
C# 去掉字符串最后一个字符的 4 种方法
在实际业务中,我们经常会遇到在循环中拼接字符串的场景,循环结束之后拼接得到的字符串的最后一个字符往往需要去掉,看看 C# 提供了哪4种方法可以高效去掉字符串的最后一个字符
350 0
|
3月前
|
前端开发 C#
C# 一分钟浅谈:字符串操作与正则表达式
本文详细介绍C#中的字符串操作与正则表达式应用,涵盖字符串拼接、分割、查找及替换等基础操作,并通过实例讲解正则表达式的模式匹配、文本替换与分组捕获技巧。同时,文章还探讨了性能优化、复杂度管理和安全性等问题及解决策略,助你提升编程效率,应对实际开发挑战。
80 0
|
5月前
|
SQL 开发框架 前端开发
在C#开发中使用第三方组件LambdaParser、DynamicExpresso、Z.Expressions,实现动态解析/求值字符串表达式
在C#开发中使用第三方组件LambdaParser、DynamicExpresso、Z.Expressions,实现动态解析/求值字符串表达式
|
4月前
MAC 转 Byte[] 数组
MAC 转 Byte[] 数组
55 0
|
5月前
|
Java Apache Maven
Java:commons-codec实现byte数组和16进制字符串转换
在上述代码中,`Hex.encodeHexString(bytes)`用于将byte数组转换为16进制字符串,`Hex.decodeHex(hexString)`用于将16进制字符串转换为byte数组。
108 0
|
1月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
35 3
|
2天前
|
存储 安全 编译器
学懂C#编程:属性(Property)的概念定义及使用详解
通过深入理解和使用C#的属性,可以编写更清晰、简洁和高效的代码,为开发高质量的应用程序奠定基础。
31 12