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

简介: 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);
目录
相关文章
|
1月前
|
人工智能
字符串转换后的长度
【10月更文挑战第10天】字符串转换后的长度I,字符串转换后的长度II
29 1
|
1月前
|
编译器 C语言 C++
C/C++数字与字符串互相转换
C/C++数字与字符串互相转换
创建定长的数字,进制之间转化,二进制,十进制 字符串
创建定长的数字,进制之间转化,二进制,十进制 字符串
|
6月前
字符与数字的相互转换
字符与数字的相互转换
85 0
|
6月前
|
C#
C# | [字节数组]与[16进制字符串]互相转换 - CodePlus系列
十六进制(简写为hex或下标16)是一种基数为16的计数系统,是一种逢16进1的进位制。通常用数字0、1、2、3、4、5、6、7、8、9和字母A、B、C、D、E、F(a、b、c、d、e、f)表示,其中:A~F表示10~15,这些称作十六进制数字。 我们在做开发的过程中,经常需要将收发数据打印出来检查。如何简单高效的一行代码转换字节数组到字符串呢?我们来一起看看吧!
131 0
C# | [字节数组]与[16进制字符串]互相转换 - CodePlus系列
|
存储
浮点数float转换成十六进制字符串的方法(FloatToHex)
浮点数float转换成十六进制字符串的方法(FloatToHex)
603 0
浮点数float转换成十六进制字符串的方法(FloatToHex)
常用字节转换(字符串转16进制,16进制转字符串)
常用字节转换(字符串转16进制,16进制转字符串)
062.浮点数转换为字符串
062.浮点数转换为字符串
128 0