首页 > 其他分享 >核心(Hutool-core)语言特性(二进码十进数-BCD)

核心(Hutool-core)语言特性(二进码十进数-BCD)

时间:2024-06-14 18:12:21浏览次数:19  
标签:core 码十进数 二进制码 编码 BCD 二进制 strForTest 十进制

介绍
BCD码(Binary-Coded Decimal)亦称二进码十进数或二-十进制代码,BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。

这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却电脑作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。

BCD码是四位二进制码, 也就是将十进制的数字转化为二进制, 但是和普通的转化有一点不同, 每一个十进制的数字0-9都对应着一个四位的二进制码,对应关系如下: 十进制0 对应 二进制0000;十进制1 对应二进制0001.......9=>1001 接下来的10就由两个上述的码来表示,表示为0001 0000。也就是BCD码是遇见1001就产生进位,不象普通的二进制码,到1111才产生进位10000

方法

String strForTest = "123456ABCDEF";

//转BCD
byte[] bcd = BCD.strToBcd(strForTest);
//解码BCD
String str = BCD.bcdToStr(bcd);
Assert.assertEquals(strForTest, str);

注意

由于对ASCII的编码解码有缺陷,且这种BCD实现并不规范,因此会在6.0.0中移除

标签:core,码十进数,二进制码,编码,BCD,二进制,strForTest,十进制
From: https://www.cnblogs.com/velloLei/p/18248405

相关文章

  • 核心(Hutool-core)工具类(社会信用代码工具-CreditCodeUtil)
    介绍法人和其他组织统一社会信用代码制度,相当于让法人和其他组织拥有了一个全国统一的“身份证号”。规则如下:第一部分:登记管理部门代码1位(数字或大写英文字母)第二部分:机构类别代码1位(数字或大写英文字母)第三部分:登记管理机关行政区划码6位(数字)第四部分:主体标识码(......
  • 核心(Hutool-core)工具类(信息脱敏工具-DesensitizedUtil)
    介绍在数据处理或清洗中,可能涉及到很多隐私信息的脱敏工作,因此Hutool针对常用的信息封装了一些脱敏方法。现阶段支持的脱敏数据类型包括:用户id中文姓名身份证号座机号手机号地址电子邮件密码中国大陆车牌,包含普通车辆、新能源车辆银行卡整体来说,所谓脱敏就是隐藏掉信......
  • 核心(Hutool-core)工具类(字符编码工具-CharsetUtil)
    介绍CharsetUtil主要针对编码操作做了工具化封装,同时提供了一些常用编码常量。常量常量在需要编码的地方直接引用,可以很好的提高便利性。字符串形式ISO_8859_1UTF_8GBKCharset对象形式CHARSET_ISO_8859_1CHARSET_UTF_8CHARSET_GBK方法编码字符串转为Charset对象Char......
  • 核心(Hutool-core)工具类(SPI加载工具-ServiceLoaderUtil)
    介绍SPI(ServiceProviderInterface),是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。更多介绍见:https://www.jianshu.com/p/3a3edbcd8f24使用定义一个接口:packagecn.hutool.test.spi;publicinterfaceSPIService......
  • 核心(Hutool-core)工具类(类加载工具-ClassLoaderUtil)
    介绍提供ClassLoader相关的工具类,例如类加载(Class.forName包装)等方法获取ClassLoadergetContextClassLoader获取当前线程的ClassLoader,本质上调用Thread.currentThread().getContextClassLoader()getClassLoader按照以下顺序规则查找获取ClassLoader:获取当前线程的Context......
  • 核心(Hutool-core)语言特性(HashMap扩展-Dict)
    由来如果你了解Python,你一定知道Python有dict这一数据结构,也是一种KV(Key-Value)结构的数据结构,类似于Java中的Map,但是提供了更加灵活多样的使用。Hutool中的Dict对象旨在实现更加灵活的KV结构,针对强类型,提供丰富的getXXX操作,将HashMap扩展为无类型区别的数据结构。介绍Dict继承H......
  • 核心(Hutool-core)语言特性(单例工具-Singleton)
    为什么会有这个类平常我们使用单例不外乎两种方式:在对象里加个静态方法getInstance()来获取。此方式可以参考【转】线程安全的单例模式(opensnewwindow)这篇博客,可分为饿汉和饱汉模式。通过Spring这类容器统一管理对象,用的时候去对象池中拿。Spring也可以通过配置决定懒汉......
  • 核心(Hutool-core)日期时间(计时器工具-TimeInterval)
    Hutool通过封装TimeInterval实现计时器功能,即可以计算方法或过程执行的时间。TimeInterval支持分组计时,方便对比时间。使用TimeIntervaltimer=DateUtil.timer();//---------------------------------//-------这是执行过程//---------------------------------timer.int......
  • 核心(Hutool-core)IO流相关(IO工具类-IoUtil)
    方法拷贝流的读写可以总结为从输入流读取,从输出流写出,这个过程我们定义为拷贝。这是一个基本过程,也是文件、流操作的基础。以文件流拷贝为例:BufferedInputStreamin=FileUtil.getInputStream("d:/test.txt");BufferedOutputStreamout=FileUtil.getOutputStream("d:/test......
  • 核心(Hutool-core)IO流相关
    由来IO的操作包括读和写,应用场景包括网络操作和文件操作。IO操作在Java中是一个较为复杂的过程,我们在面对不同的场景时,要选择不同的InputStream和OutputStream实现来完成这些操作。而如果想读写字符流,还需要Reader和Writer的各种实现类。这些繁杂的实现类,一方面给我们提供了更多......