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));
条码取到之后就随便怎么做了。
作者:Allen Chen无影
邮箱:allen0717@163.com 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
标签:
十六进制
, 十进制与十六进制互相转换
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?