title author date CreateTime categories
C# 16 进制字符串转 int
lindexi
2019-02-28 11:51:36 +0800
2018-04-27 10:32:21 +0800
C#

最近在写硬件,发现有一些测试是做 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

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

  1. C# 16 进制字符串转 int

    最近在写硬件,发现有一些测试是做 16 进制的字符串,需要把他转换为整形才可以处理. 本文告诉大家如何从 16 进制转整形 如果输入的是 0xaa 这时转换 int 不能使用 Parse 不然会出现异 ...

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

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

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

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

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

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

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

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

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

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

  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() { ...

  10. java标签(label)求16进制字符串的整数和 把一个整数转为4个16进制字符表示

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #4f76cb } p.p2 { margin: 0.0px 0. ...

随机推荐

  1. 更新与发展 | Alibaba Cloud Linux 2 特性与开发细节揭秘

    2019 年 4 月,Alibaba Cloud Linux 2 (Aliyun Linux 2) 正式开源.时至今日,已经走过三个月的里程.在这段时间内,这个刚诞生不久的为阿里云 ECS 环境定制优 ...

  2. MySql实现Oracle的row_number()over(partition by ... order by ...)

    SELECT IF(t1.id = @id,@rownum := @rownum + 1,@rownum := 1)AS rownum, t1.*, @id := t1.id FROM (SELECT ...

  3. eclipse忽略js文件报错

    eclipse中js文件报错的情况,或许大家早已习以为常了,那么有什么好的方法可以将其忽略掉呢?如果你也在寻找此问题,那么本文或许可以帮助到你忽略某个js文件报错的方法: Project Proper ...

  4. 手机端 echarts使用 svg渲染器

    // 使用 Canvas 渲染器(默认) var chart = echarts.init(containerDom, null, {renderer: 'canvas'}); // 等价于: var ...

  5. pl/sql基础知识—pl/sql块介绍

    n  介绍 块(block)是pl/sql的基本成型单元,编写pl/sql程序实际上就是编写pl/sql块.要完成相对简单的应用功能,可能只需要编写一个pl/sql块:但是如果要想实现复杂的功能,可能 ...

  6. 使用Data Lake Analytics读/写RDS数据

    Data Lake Analytics 作为云上数据处理的枢纽,最近加入了对于RDS(目前支持 MySQL , SQLServer ,Postgres 引擎)的支持, 这篇教程带你玩转 DLA 的 R ...

  7. android performance

    https://developer.android.com/studio/profile/systrace.html http://www.milan100.com/article/show/1544 ...

  8. win2003开启ftp

    首先你要添加IIS,然后才可以启动配置FTP,步骤如下: 1.控制面板→添加或删除程序→添加/删除windows组件: 2.在弹出的windows组件向导窗口中,选择并勾选“应用程序服务器”,然后点击 ...

  9. 集合--Set&&HashSet和TreeSet

    特点:元素无序,不可重复 1.添加元素 set.add("tanlei"); set.addAll(Arrays.asList(44,"磊","磊&q ...

  10. 系统重装后,Mysql数据库重装加载原来数据库

    相信不只我一个人因为重新装了系统后,导致mysql数据库无法使用的问题.尽管可以重新安装一个mysql服务端程序在自己的电脑上,但是要如何才能够将之前的数据库也一并重新恢复呢? 今天,我找到了解决之道 ...