zoukankan      html  css  js  c++  java
  • 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));


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

查看全文
  • 相关阅读:
    TTTTTTTTTTTTTTTTTTT UVA 2045 Richness of words
    hdu 5723 Abandoned country 最小生成树+子节点统计
    hdu 5792 World is Exploding 树状数组+离散化+容斥
    MySQL字符集详解
    MySQL的sql语言分类DML、DQL、DDL、DCL、
    MySQL5.6的4个自带库详解
    Win10下安装MySQL5.6
    {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句
    {python--GIL锁}一 介绍 二 GIL介绍 三 GIL与Lock 四 GIL与多线程 五 多线程性能测试
    Navicat安装及简单使用
  • 原文地址:https://www.cnblogs.com/allen0118/p/2803331.html
  • Copyright © 2011-2022 走看看