C#操作十六进制数据以及十进制与十六进制互相转换

客户给了一个十六进制的条码范围,只有起始和结束,中间的条码都不知道,现在需要将这些十六进制的条码全部打印成条码,然后贴在成品上面,如果是普通的阿拉伯数字那么直接循环+1,使用 流水号就行了,但是对十六进制的条码相对来说麻烦了一点点,实现方式如下:

1.首先将客户给的那个十六进制的起始和结束条码转换为十进制,转换成十进制之后就可以计算了。
方法:

/// <summary>
        /// 从十进制转换到十六进制
        /// </summary>
        /// <param name="ten"></param>
        /// <returns></returns>
        public static string ConvertNumToHex(string ten)
        {
            ulong Numb = Convert.ToUInt64(ten);
            ulong divValue, resValue;
            string hex = "";
            do
            {
                divValue = (ulong)Math.Floor((decimal)(Numb / 16));

                resValue = tenValue % 16;
                hex = GetNumb(resValue) + hex;
                Numb = divValue;
            }
            while (Numb >= 16);
            if (Numb != 0)
                hex = GetNumb(Numb) + hex;
            return hex;
        }

        public static string GetNumb(ulong Numb)
        {
            switch (Numb)
            {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                case 8:
                case 9:
                    return ten.ToString();
                case 10:
                    return "A";
                case 11:
                    return "B";
                case 12:
                    return "C";
                case 13:
                    return "D";
                case 14:
                    return "E";
                case 15:
                    return "F";
                default:
                    return "";
            }
        }

调用这个方法将结果取出来:

 private void btnGetNumb_Click(object sender, EventArgs e)
        {
            this.txtStartSN.Text = Hex2Ten(this.txtStartSNHex.Text.Trim().Substring(4, 8));
            this.txtEndSN.Text = Hex2Ten(this.txtEndSNHex.Text.Trim().Substring(4, 8));

        }

2.根据得到的十进制条码范围生成条码

listBox1.Items.Add(ConvertNumToHex((Convert.ToDouble(this.txtStartSN.Text) + i).ToString()).Substring(4, 4));

条码取到之后就随便怎么做了。

时间: 2024-10-31 22:52:37

C#操作十六进制数据以及十进制与十六进制互相转换的相关文章

MATLAB把ISE中产生的1QN格式的十六进制数据转换为十进制数进行分析

数据格式为1位符号位,1位整数位,8位小数位. N=64; fid = fopen('e:\sin.txt','r'); for i = 1 : N; num(i) = fscanf(fid, '%x', 1) %从fid所指的文件以16进制方式读出数据 if(num(i)>512) num(i)=-(num(i)-512)/2^8;%第10位(符号位)是1,转换为负数.8位小数位,除以2^8 else num(i)=num(i)/2^8; end end fclose(fid); plot(n

复制-link在划分十六进制数据的同时还要修改十六进制数据

问题描述 link在划分十六进制数据的同时还要修改十六进制数据 link在划分十六进制数据的同时还要修改十六进制数据,请问link查询会不会重新复制数组?那样是不是效率太低了?请大牛回答. 解决方案 确实,linq没法直接修改元素,你要是要求高性能,就直接对数组操作就行了,别用linq.

按钮-使用mscomm控件发送十六进制数据的写法

问题描述 使用mscomm控件发送十六进制数据的写法 我需要单击一个按钮时发送一个十六进制字符串例如"01 03 00" 解决方案 先将16进制转换成byte[]不知道什么语言,如果是C#可以写string[] hexstr = s.Split(' ');byte[] data = new byte[hexstr.Count()];for (int i = 0; i < hexstr.Count(); i++){ data[i] = Convert.ToByte(hexstr[i

java-Java 十进制转十六进制?

问题描述 Java 十进制转十六进制? 问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式.它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15.十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E. 给出一个非负整数,将它表示成十六进制的形式. 输入格式 输入包含一个非负整数a,表示要转换的数.0<=a<=2147483647 输出格

php bcd码压缩-把十进制数字压缩到十六进制数据中

例,php bcd码压缩-把十进制数字压缩到十六进制数据中  代码如下 复制代码 <?php /* php bcd码压缩-把十进制数字压缩到十六进制数据中 例如 0091 压缩后 0x00 0x91 */ $string = '0091'; $bytes = Bytes::getBytes($string); print_r($bytes); /* Array (     [0] => 48     [1] => 48     [2] => 57     [3] => 49

app-android蓝牙十六进制数据

问题描述 android蓝牙十六进制数据 大神们,求教. 我用蓝牙APP收到从设备发回来的一堆十六进制的数据,然后我该怎么去解析這些数据,在把這些数据做成波形图,第一次搞蓝牙,到這里没思路了.希望大神能帮帮忙! 解决方案 参考Java Hex 16进制的 byte String 转换类

16进制生成文件-java 十进制转十六进制字节,高位在后,地位在前

问题描述 java 十进制转十六进制字节,高位在后,地位在前 把10进制的数转换为16进制字节,并高位在前,地位在后,怎么做? 求指点迷津啊~~~~~ 例如:十进制(1000)转十六进制为(3E8),高位在前,地位在后为:(E8 03). 解决方案 decToHex(1000); //This is E803 public static String decToHex(int dec) { String hex = ""; while(dec != 0) { String h = In

C# 二进制,十进制,十六进制 互转

C# 二进制,十进制,十六进制 互转 //十进制转二进制Console.WriteLine(Convert.ToString(69, 2));//十进制转八进制Console.WriteLine(Convert.ToString(69, 8));//十进制转十六进制Console.WriteLine(Convert.ToString(69, 16)); //二进制转十进制Console.WriteLine(Convert.ToInt32("100111101″, 2));//八进制转十进制Con

Oracle中的二进制、八进制、十进制、十六进制相互转换函数

原文:Oracle中的二进制.八进制.十进制.十六进制相互转换函数 Oracle中的二进制.八进制.十进制.十六进制相互转换函数   今天在网上看到一篇关于在oracle中对各种进制数进行转换的帖子,觉得不错,也比较全面,几乎涵盖了经常用到的所有转换.转过来学习一下,也方便以后查询. ================================================================================== 大家经常遇到进制转换的问题,网上搜到的转换只是部