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

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

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

  • 方案一
    字符/字符串本身没有涉及进制转换,也就是没有溢出,那么直接调用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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

define_mine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值