16进制_16进制转换 - CSDN
  • c# 16进制转10进制

    2019-04-13 09:11:59
    CPU卡、M1、ID卡,在一卡通平台通常做法是使用扇区的前4字节的10进制做为卡号,但实际扇区存储的都是16进制字符串。所以项目中就有对10进制和16进制转换的要求。 推荐工具:在线进制转换...

    CPU卡、M1、ID卡,在一卡通平台通常做法是使用扇区的前4字节的10进制做为卡号,但实际扇区存储的都是16进制字符串。所以项目中就有对10进制和16进制转换的要求。

    推荐工具:在线进制转换《http://tool.oschina.net/hexconvert/ 》

    一、16进制转10进制

    var id = Convert.ToInt32("28de1212", 16);

    //id 685642258

    var id = Convert.ToInt64("28de1212", 16);

    //id 685642258

    二、10进制转16进制

    var str16 = id.ToString("x8");

    //str16 "28de1212"

     

    转载博客: URLhttps://www.cnblogs.com/hitfredrick/p/6403003.html

    C#中二进制、十进制和十六进制互相转换的方法

    二进制在C#中无法直接表示,我们一般用0和1的字符串来表示一个数的二进制形式。比如4的二进制为“100”。下面介绍C#里面用于进制转换的方法。

    十进制转换为二进制(int-->string)

    System.Convert.ToString(d, 2);// d为int类型 以4为例,输出为100

    十六进制转换为二进制(int-->string)

    System.Convert.ToString(d, 2);// d为int类型 以0X14为例,输出为10100

    上面ToString函数的第二个参数表示目标数字系统的基数。

    二进制转换为十进制(string-->int)

    System.Convert.ToInt32(s, 2);// d为string类型 以“1010”为例,输出为10

    十六进制转换为十进制(string-->int、int-->int)

    方法一:

    System.Convert.ToString(0xa,10);// 以0XA为例,输出为10

    或者

    System.Convert.ToInt32("0x41", 16);//以"0x41"为例,输出为65

    方法二:

    System.Int32.Parse(s, System.Globalization.NumberStyles.HexNumber);//s为string类型,以“41”为例,输出为65

    注意这里的s中不能带有“0X”或者“0x”,区别于上面的方法。

    二进制转换为十六进制(string-->int)

    先转换为十进制,在转换为十六进制

    string.Format("{0:X}",System.Convert.ToInt32(s, 2));// s为string类型 以“1010”为例,输出为A

    十进制转换为十六进制

    十进制转换为十六进制不需要特殊的方法,只要对输出格式进行控制一下就可以。

    或者使用string.Format("{0:x}", dec)方法进行控制,也可以用s.ToString("X")方式进行控制。

     

    除了数制转换之外,数据类型的转换也比较重要。对于基本数据类型,byte、char、int、string以及它们的数组形式的转换虽然简单,但是比较基础的知识。网上也有很多详解,用到的时候自行查阅即可。

     

     

     

     

     

    展开全文
  • 今天遇到一个很坑的问题就是 客户端发送命令(16进制 01 AB D3 28 33 55 )到设备死活不成功, 最后想了想才发现转换有问题。 首先命令的发送必须是16进制,而发送的命令本身就是 十六进制,问题是我发送的是16进制...

    今天遇到一个很坑的问题就是 客户端发送命令(16进制 01 AB D3 28 33 55 )到设备死活不成功, 最后想了想才发现转换有问题。 首先命令的发送必须是16进制,而发送的命令本身就是 十六进制,问题是我发送的是16进制字符串,而不是16 进制命令的本身值。

     1.  错误 (我传的是字符串而不是16进制,不要被字符串的16进制表现形式给蒙蔽了)

    //16进制转换byte[]

    byte[] data= Encoding.ASCII.GetBytes("01 AB D3 28 33 55");

    //byte[] 转换成16进制

    String content = Encoding.ASCII.GetString(buffer,0,count);

    2.正确(把16进制字符串 每两位 直接转换byte 放到byte[]数组里)

    //16 进制转换成字符串

    private  byte[] HexStrTobyte(string hexString)
            {
                hexString = hexString.Replace(" ", "");
                if ((hexString.Length % 2) != 0)
                    hexString += " ";
                byte[] returnBytes = new byte[hexString.Length / 2];
                for (int i = 0; i < returnBytes.Length; i++)
                    returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2).Trim(), 16);
                return returnBytes;
            }

       //字节[] 转换成16进制

        byte[] buffer =getData();

        StringBuilder strBuider = new StringBuilder();
        for (int index = 0; index < count; index++)
        {
            strBuider.Append(((int)buffer[index]).ToString("X2"));
        }

    展开全文
  • 为什么要使用进制数 数据在计算机中的表示,最终以二进制的形式存在 , 就是各种 &lt;黑客帝国&gt;电影中那些 0101010… 的数字 ; 我们操作计算机 , 实际 就是 使用 程序 和 软件 ...用16进制或8进制可以...

    为什么要使用进制数

    数据在计算机中的表示,最终以二进制的形式存在 , 就是各种 <黑客帝国>电影中那些 0101010… 的数字 ;

    我们操作计算机 , 实际 就是 使用 程序 和 软件 在 计算机上 各种读写数据,
    如果我们直接操作二进制的话 , 面对这么长的数进行思考或操作,没有人会喜欢。

    C,C++ 语言 没有提供在代码直接写二进制数的方法。
    用16进制或8进制可以解决这个问题。
    因为,进制越大,数的表达长度也就越短。

    之所以 使用 16或8进制,而不其它的,诸如9或20进制 .

    是因为2、8、16,分别是2的1次方、3次方、4次方。这一点使得三种进制之间可以非常直接地互相转换 ;

    8进制或16进制 既 缩短了二进制数,还能 保持了二进制数的表达特点。转换还方便 .

    进制的介绍

    进制 : 是计算机中数据的一种表示方法。 N进制的数可以用0~(N-1) 的数表示, 超过9的用字母A-F 表示 .

    • 10进制

    先说 我们最 熟悉的 10进制 , 就是 用 0~9 的数表示 , 逢 10 进 1 .

    • 16进制

    如果是 16 进制 , 它就是 由 0-9,A-F组成, 与10进制的对应关系是:0-9 对应 0-9;A-F对应10-15;
    字母不区分大小写。

    • 2进制 和 8进制

    2进制 由 0-1组成

    8进制 由 0-7组成

    进制的转换公式

    1. 二进制转换十进制
      这里写图片描述
    2. 八进制转换十进制
      这里写图片描述
    3. 十六进制转换十进制
      这里写图片描述

    如何快速的进行 2进制,10进制,16进制 的 相互转换

    • 先记住二进制 的8421

    首先我们来看一个二进制数:1111,它是多少呢?
    你可能还要这样计算:1×2º+1×2¹+1×2²+1×2³=1×1+1×2+1×4+1×8=15。

    我们必须直接记住1111每一位的权值,并且是从高位往低位记,:8、4、2、1。 即,最高位的权值为2³=8,然后依次是 2²=4,2¹=2,2º=1。

    记住8 4 2 1,对于任意一个4位的二进制数,我们都可以很快算出它对应的10进制值。

    • 接下来我们练习 通过 8421 的方式 进行 快速的计算 , 2,10,16进制的转换

    1111 = 8 + 4 + 2 + 1 = 15 =F
    1110 = 8 + 4 + 2 + 0 = 14= E
    1101 = 8 + 4 + 0 + 1 = 13= D
    1100 = 8 + 4 + 0 + 0 = 12 =C
    1011 = 8 + 0 + 2 + 1 = 11= B
    1010 = 8 + 0 + 2 + 0 = 10 =A
    1001 = 8 + 0 + 0 + 1 =9 =9
    ……
    0001 = 0 + 0 + 0 + 1 = 1= 1
    0000 = 0 + 0 + 0 + 0 = 0= 0

    • 二进制数要转换为十六进制

    二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。
    如(上行为二制数,下面为对应的十六进制):
    1111 1101 , 1010 0101 , 1001 1011
    F D , A 5 , 9 B

    • 16进制数转换为二进制数

    反过来,当我们看到 FD时,如何迅速将此16进制数转换为二进制数呢?
    先转换F:
    看到F,我们需知道它是15(可能你还不熟悉A~F这五个数),然后15如何用8421凑呢?应该是8 + 4 + 2 + 1,所以四位全为1 :1111。
    接着转换D
    看到D,知道它是13,13如何用8421凑呢?应该是:8 + 4 + 1,即:1101。
    所以,FD转换为二进制数,为:1111 1101

    • 十进制数转换成2进制

    由于十六进制转换成二进制相当直接,所以,我们需要将一个十进制数转换成2进制数时,也可以先转换成16进制,然后再转换成2进制。
    比如,十进制数 1234转换成二制数,如果要一直除以2,直接得到2进制数,需要计算较多次数。所以我们可以先除以16,得到16进制数:
    被除数 计算过程 商 余数
    1234 1234/16 77 2
    77 77/16 4 13 (D)
    4 4/16 0 4
    结果16进制为:4D2
    然后我们可直接写出4D2的二进制形式:
    0100
    1101
    0010
    其中对映关系为:
    0100 – 4
    1101 – D
    0010 – 2

    • 二进制数转换成10进制数

    同样,如果一个二进制数很长,我们需要将它转换成10进制数时,除了前面学过的方法是,我们还可以先将这个二进制转换成16进制,然后再转换为10进制。
    下面举例一个int类型的二进制数:

    01101101 11100101 10101111 00011011

    我们按四位一组转换为16进制:6D E5 AF 1B
    十进制转十六进制
    采余数定理分解,例如将487710转成十六进制:

    487710÷16=30481….14(E)
    30481÷16=1905….1
    1905÷16=119….1
    119÷16=7….7
    7÷16=0….7
    这样就计到487710(10)=7711E(16)

    展开全文
  • 探究10进制整型转16进制整型  1).16进制字符串与整型的互换:   String str="1A";  int t=Integer.parseInt(str, 16); //将16进制的字符串转换为16进制整型; 注:整型包括各种进制,如2进制,8进制,10进制,16...

    探究10进制整型转16进制整型

    1).16进制字符串与整型的互换

            String str="1A";
            int t=Integer.parseInt(str, 16);
    //将16进制的字符串转换为16进制整型;

    注:整型包括各种进制,如2进制,8进制,10进制,16进制。如int hex=0xff;表示一个16进制整型

         以上代码Integer.parseInt(str, 16)表示将来自16进制的字符串str转换为整型。这里的整型是通用的,也就是        说,你可以把这个整型看成是16进制的整型0x1A,也可以看成是10进制的整型26,还可以是2进制的整型11010。        因为

          int a=0x1A,b=26;

          a=b; //true

           注意,此时如果控制台打印出t那么永远都是以10进制来显示,即都会显示26。如果你需要实实在在看到显示的是1A,而不是26,那么,你可以使用Integer.toHexString(int i)来将整型t转换为String类型的16进制样式1A。


    2).其他进制字符串转为10进制:

         Integer.parseInt(String str,int radix);

         Integer.valueof(String str,int radix);  //radix表示原字符串的进制数,方法返回的即是转换后的10进制数


    3).10进制转为其他进制字符串:

        Integer.toHexString(int i);  //10进制转16进制字符串

                Integer.toOctalString(int i);  //10进制转8进制字符串

         Integer.toBinaryString(int i);  //10进制转2进制字符串


         由上亦可得,在java中,所有进制的显示一般都是以10进制形式显示的,但它可以等同也表示为其他任意进制的形式。所以,我们没必要去看到t=0x1A,知道他等于26,等于1A就行了,如果我们的确想看到,使用上面的10进制转换为任意进制字符串的方法即可,我们可以看到,java中,整型以10进制为代表作为显示即可,而其他进制,都以字符串形式展示(如果我们需要看的话),正如上面,java Integer方法中都是将10进制整型转换为其他进制字符串,或是其他进制字符串转为10进制整型。因此也不存在百度搜索条上的一些:如何将16进制的int转为10进制的int,或是10进制的整型转换为16进制的整型,整型间的进制转换是没有意义的。

    展开全文
  • #10进制转16进制: hex(16) ==&amp;gt; 0x10 10进制转8进制: oct(16) ==&amp;gt; 0x10` 16进制转10进制: `int('0x10', 16) ==&amp;gt; 16` 类似的还有oct(), bin() 字符串转整数: 10进制字符串: int...

    整数之间的进制转换:

    hex(16)     # 10进制转16进制
    oct(8)      # 10进制转8进制
    bin(8)      # 10进制转2进制

    字符串转整数:

    int('10')       # 字符串转换成10进制整数
    int('10',16)    # 字符串转换成16进制整数
    int('0x10',16)  # 字符串转换成16进制整数
    int('10',8)     # 字符串转换成8进制整数
    int('010',8)    # 字符串转换成8进制整数
    int('10',2)     # 字符串转换成2进制整数
    展开全文
  • Python输出16进制不带0x补零,整数转16进制,字符串转16进制   在开发中,我们偶尔会遇到需要将数据通过控制台打印出来,以检查数据传输的准确性。例如调试服务端刚接到的二进制数据(里面包含很多非可见字符,也...
  • 16进制与buffer相互转换 一个字节是8位,相当于16进制2位,因此为了方便表示,很多情况下,buffer打印出来是16进制显示的,但是本质上还是2进制,就好比buffer里边的 11111111 打印出来之后就会显示 ff 首先说说16...
  • 自己写的16进制字符转转为16进制数字,函数已经封装好String2Hex(CString str, CByteArray &hexdata),欢迎大家使用
  • 经过单步调试,发现单片机发送的数据帧是字符串,并不是16进制数,而在线解包程序直接是对16进制数进行处理的,这就导致的比如16进制的数0xAA(170),下位机发送的是“AA"(字符串),上位机处理的16进制数是41 41...
  • 6-3 长整数转化成16进制字符串(15 分) 本题要求实现一个将长整数转化成16进制字符串的简单重点内容函数。 函数接口定义: void f( long int x, char *p ); 其中x是待转化的十进制长整数,p指向某个字符数组...
  • 而网络抓包或收发数据包检测分析时常利用16进制格式显示,因为二进制书写较长,难以记忆,而每4个二进制位对应1个16进制位,两位16进制的数刚好表达一个字节(8位),比较直观。 二进制和16进制之间具有对应关系见下...
  • 16进制有符号判断正负其实是将16进制转为2进制看最高位的值,如果是1则代表是负数,如果是0则代表正数,负数在计算机中是原数的补码,正数的补码就是原码,所以我们判断最高位是否是1,如果是1则最高位保持不变其余...
  • c/c++ 16进制

    2015-12-19 15:05:51
    首先,什么是16进制数,16进制数就是满16进一的数。例如0xf+1=ox10,16进制数的是以ox开头的,这主要是为了和10进制进行区别,例如1234和0x1234,如果16进制不以ox开头的话,那么岂不是16进制和10进制就无法区别了。...
  • C++实现10进制转换2,8,16进制 (1)使用c++实现10进制int型转换到2,8,16进制,其中int型最大值为2147483647,所以输入转化的数不能大于该数。 (2)使用数组进行转换时使2进制,8进制每隔4位添加一个空格,16...
  • rgba转16进制

    2019-06-04 15:48:56
    今天工作中遇到如下需求,需要将rgba的颜色值,转换为16进制的颜色值 将rgb转换为16进制我们都知道,但是将rgba装换为16进制知道的人可能就很少了,经过我查阅资料发现,国内几乎没有对于这个转换的正确解释,下面我...
  • 10进制转换为16进制

    2018-12-19 10:26:22
    十进制小数转换为16进制小数可采用乘16取整法,即: 十进制小数转R进制小数,方法为乘R取整,每次乘以相应之后基数后取结果的整数部分即可。需要注意的是并非所有的十进制小数都能完全转化为R进制小数,这时就需要...
  • @TOCC++ 16进制字符串转16进制数组函数 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本...
  • 十六进制转换有16进制每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F16个大小不同的数,即逢16进1,其中用A,B,C,D,E,F(字母不区分大小写)这六个字母来分别表示10,11,12,13,14...
  • RGB颜色与16进制色以及透明色是我们在开发经常要用到的,不太明白可以花几分钟看看:  RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的...
  • 先以16进制为例,做QString与int之间的转换: QString转int: QString hexstr = "0xFF" bool ok; int hexnum = hexstr.toInt(&amp;ok,16); // 表示以16进制方式读取字符串 qDebug()&lt;&lt;...
1 2 3 4 5 ... 20
收藏数 659,487
精华内容 263,794
关键字:

16进制