最近在写硬件,发现有一些测试是做 16 进制的字符串,需要把他转换为整形才可以处理。

本文告诉大家如何从 16 进制转整形

如果输入的是 0xaa 这时转换 int 不能使用 Parse 不然会出现异常

System.FormatException

如果需要转换十六进制就需要使用 Convert 才可以转换

Convert.ToInt32("0xaa", 16)

使用这个方法才可以转换。实际使用这个方法转换不一定需要添加0x,直接使用aa也是可以

Convert.ToInt32("0xaa", 16) == Convert.ToInt32("aa", 16)

我需要转换的是一个字符串,里面有很多数值,所以我就使用下面的方法。

如果输入的字符串是这个样子

  var str =
"AA BB CC 12 01 0D 00 34 38 34 35 32 30 41 35 33 46 37 30 2C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A";

那么就需要先添加 0x 然后再转换,使用下面一句话可以转数组

        var command = str.Split(' ').Select(temp => "0x" + temp).Select(temp => (byte) Convert.ToInt32(temp, 16))
.ToArray();

这个方法大家可以直接拿去使用。

如果输入没有带0x那么另一个方法是 int.Parse ,因为这个方法可以设置如何转换,注意需要不带0x如果带了就出现异常

int.Parse("aa", System.Globalization.NumberStyles.HexNumber)

How to: Convert Between Hexadecimal Strings and Numeric Types

我搭建了自己的博客 https://lindexi.gitee.io/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

C# 16 进制字符串转 int的更多相关文章

  1. iOS 16进制字符串转换成int十进制

    NSRange rangeErr; rangeErr.location = 6; rangeErr.length = 2; NSString *strings = [value substringWi ...

  2. C语言:将16进制字符串转化为int类型值

    将16进制字符串值转换为 int 整型值 此例中用 "1de" 作为测试字符串,实现代码如下: #include <stdio.h> #include <stdl ...

  3. C++实现16进制字符串转换成int整形值

    开发中经常需要把16进制字符串转换成整形,写了个个代码供大家参考下: #include <stdio.h> #include <string.h> //字符转换成整形 int ...

  4. 字节流、字符串、16进制字符串转换__Java(转)

    /** * @Package: * @ClassName:TypeConversion * @Description:字节流.字符串.16进制字符串转换 * @author:xk * @date:Ja ...

  5. Java中byte与16进制字符串的互相转换

    * Convert byte[] to hex string.这里我们可以将byte转换成int,然后利用Integer.toHexString(int)来转换成16进制字符串. * @param s ...

  6. Java中将16进制字符串转换成汉字

    技术交流群:233513714 /** * 将16进制字符串转换成汉字 * @param str * @return */ public static String deUnicode(String ...

  7. 16进制字符串转数字(C/C++,VB/VB.net,C#)

    这个问题看是很简单,但是在不同语言中实现的方式却千差万别,如果不知道方法,还真是麻烦,我就是在C#中遇到该问题,让我费了很大的周折,才在msdn查到. 一.16进制字符串转数字      1.C/C+ ...

  8. [转]Java中byte与16进制字符串的互相转换

    Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符, ...

  9. java中把字节数组转换为16进制字符串

    把字符串数组转换为16进制字符串 import java.security.MessageDigest; public class StringUtil { public StringUtil() { ...

随机推荐

  1. WPF 触发器例子

    WPF的触发器很强大,这里简单附上触发器的一个小例子,分别用XMAL和CS代码来实现一个功能,鼠标悬停在button上时改变字体颜色 1.XMAL代码如下: <Window x:Class=&q ...

  2. docker.[7] 数据卷容器

    docker.[7] 数据卷容器 挂在数据卷容器的方法: # docker run --volumes-from [Container Name]

  3. WatchKit编程指南:概览--Watch应用的体系结构

    Apple Watch应用程序包含两个部分:Watch应用和WatchKit应用扩展.Watch应用驻留在用户的Apple Watch中,只含有故事板和资源文件,要注意它并不包含任何代码.而Watch ...

  4. 为Apple Watch而战-----(初级篇)

    重要 本文档是开发过程中使用的API或者技术的初步文档.苹果提供该文档以便于开发者使用苹果产品上使用技术和编程接口.后期该文档中信息会有所变动,所以依据本文档开发的软件应当使用最终的操作系统软件进行测 ...

  5. html Servlet web.xml(转)

    在浏览器输入:http://127.0.0.1:8080/test/test.html点击提交按钮,Tomcat后台输出:control: aaa's value is : bbb页面显示结果:pag ...

  6. 实现自定义docker 镜像共享

    我觉得docker最大的便利性体现在可以实现镜像共享,方便团队在同一环境下开发.当然docker的强大之处不止于此. 接下来我用一个例子来演示如何进行docker镜像共享,步骤如下(Ubuntu): ...

  7. mysql锁机制之行锁(四)

    前言 顾名思义,行锁就是一锁锁一行或者多行记录,mysql的行锁是基于索引加载的,所以行锁是要加在索引响应的行上,即命中索引,如下图所示: InnoDB 支持多粒度锁(multiple granula ...

  8. bzoj1821 部落划分

    Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗.只是,这一切都成 ...

  9. Python sorted

    sorted函数: iterable:是可迭代类型;cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一 ...

  10. Oracle函数——MINUS

    解释 “minus”直接翻译为中文是“减”的意思,在Oracle中也是用来做减法操作的,只不过它不是传统意义上对数字的减法,而是对查询结果集的减法.A minus B就意味着将结果集A去除结果集B中所 ...