Program to Convert Hexa-Decimal Number to its Equivalent BCD in Java2025年5月10日 | 阅读 5 分钟 给定一个十六进制数 N,将该数转换为其对应的二进制编码的十进制数是任务。 示例 1 输入 String str = "2A3" 输出 等效的 BCD 是 0010 1010 0011 解释 2 的二进制是:0010 A 的二进制是:1010 3 的二进制是:0011 因此,等效的 BCD 是 0010 1010 0011。 示例 2 输入 String str = "F4C" 输出 等效的 BCD 是 1111 0100 1100 解释 F 的二进制是:1111 4 的二进制是:0100 C 的二进制是:1100 因此,等效的 BCD 是 1111 0100 1100。 示例 3 输入 String str = "B7D" 输出 等效的 BCD 是 1011 0111 1101 解释 B 的二进制是:1011 7 的二进制是:0111 D 的二进制是:1101 因此,等效的 BCD 是 1011 0111 1101。 朴素方法为了生成十六进制字符串的 BCD 等效值,代码会遍历每个字符,并使用 ASCII 值比较来确定字符串是字母还是数字。字母通过减去其 ASCII 值 55 来修改,而数字则直接转换为二进制。String.format 用于将每个字符的二进制表示格式化为 4 位并用零填充。由于 StringBuilder 的存在,二进制字符串可以高效地连接起来。为了确保清晰度和符合所需的输出格式,最终的 BCD 结果经过修剪并以有条理的方式打印。 算法 步骤 1:创建一个 StringBuilder 对象 Result 来存储最终的 BCD 表示。 步骤 2:对于字符串 str 中的每个字符 步骤 2.1:验证字符('0' 到 '9')是否为数字。 步骤 2.1.1:使用 Integer.toBinaryString((int) char - '0') 将字符转换为其二进制对应项。 步骤 2.2:如果字符是字母('A' 到 'F'),则 步骤 2.2.1:使用 Integer.toBinaryString((int) char - 55) 将字符转换为其二进制对应项。 步骤 3:使用 String.format("%4s", res).Replace(' ', '0') 确保每个二进制值都有四位,并用前导零填充。 步骤 4:在每个 4 位二进制值之间添加一个空格,并将其附加到 Result 字符串。 步骤 5:添加必要的格式并删除任何多余的空格后,打印完成的 BCD 表示。 实施输出 Therefore, the equivalent BCD is 0010 1010 0011. 复杂度分析 上述代码的时间复杂度为 O(N),空间复杂度为 O(N)。 方法:使用字符串切片该代码将十六进制字符串转换为其二进制编码的十进制 (BCD) 对应项,它单独处理每个字符。使用 Character.digit 将十六进制字符转换为其整数值后,它使用 Integer.toBinaryString 获取该字符的二进制等效值。使用 String.format 将每个二进制值填充到四位以确保一致性。此 方法 可确保每个十六进制数字准确地映射到其 4 位二进制等效值。 算法 步骤 1:在名为 bcd 的空字符串 变量 中创建二进制编码的十进制表示。 步骤 2:应用 for 循环 遍历提供的十六进制数中的每个字符。 步骤 3:使用基数为 16 的 int() 函数将字符转换为其相应的 整数 值。 步骤 4:使用 bin() 函数将整数值转换为其二进制等效值。这将产生一个二进制数字字符串,前面带有“0b”。 步骤 5:使用字符串切片 ([2:]) 删除二进制字符串中的“0b”前缀。 步骤 6:使用 zfill() 方法对二进制字符串进行零填充,以确保其有四位数字。 步骤 7:将零填充的二进制字符串添加到 bcd 变量中。 步骤 8:在遍历提供的十六进制数中的每个字符后,返回最终的 bcd 字符串。 实施输出 Therefore, the equivalent BCD is 0010 1010 0011. 方法:使用查找表方法该代码使用 HashMap 作为查找表,将十六进制字符('0'-'F')映射到其相应的 4 位 BCD 二进制对应项。为了有效地构建字符串,它遍历输入的十六进制字符串,为每个字符提取映射的二进制值,并将其附加到 StringBuilder。通过使用 StringBuilder 来构建最终的 BCD 表示,确保了性能优化。之后,将单个 BCD 字符串作为结果返回。 实施输出 Therefore, the equivalent BCD is 001010100011 下一主题Java 文件上传到文件夹 |
词典顺序这个术语是一个数学术语,也称为:词典顺序、字典序、字母顺序或字典顺序。本节将涵盖词典顺序的主题、其定义以及其他详细信息。之后,我们将学习如何使用词典顺序的概念...
7 分钟阅读
给出了一个数字 n。我们的任务是找出 1 到 n 之间存在的自描述数字。自描述数字 m 是一个数字,它在基数 b 中包含 b 个数字,其中最高有效数字位于 0 位置,...。
5 分钟阅读
在 Jackson 中,Tree Model Node 是我们将在此部分讨论的最重要概念之一。我们将使用 Tree Model Node 进行各种转换以及添加、修改和删除节点。让我们了解如何创建节点、转换...
阅读 32 分钟
Java DecimalFormat 类的 getPositiveSuffix() 方法用于检索此 DecimalFormat 实例的正后缀值。语法:public String getPositiveSuffix() 参数:此方法不接受任何参数。返回值:此方法返回 DecimalFormat 实例的正后缀值。示例 1:Java 中的 DecimalFormat 类用于此...
阅读 2 分钟
Java 中的递归是指一个方法反复调用自身的过程。在编程语言中,如果一个程序允许我们在同一函数名内调用函数,则称为递归调用。它使代码更简洁...
阅读 3 分钟
该问题的主要目标是确定不大于特定数字 n 的正整数的数量,这些正整数具有所有不重复的数字,这意味着数字在数字中最多出现一次。与 11345 不同,后者不是唯一数字,因为...
阅读 16 分钟
基于 Java 的智慧城市项目充当基础应用程序,展示了交通服务、医院信息、教育机构和安全设施的关键城市数据。游客以及新居民会发现此项目有助于获取重要的城市相关信息。基于 Java 的系统使用 Java...
阅读 6 分钟
双生素数是相差2的两个素数。素数之间的差为2的素数被称为双生素数。双生素数一词用于一对双生素数。……
5 分钟阅读
JonDonym(也称为 JAP)是一种代理系统,旨在实现可撤销的匿名性(使用或以笔名、假名或虚构名称出版的状态)。没有这种匿名性,使用互联网的每个设备...
阅读 4 分钟
java.text.ChoiceFormat 是一个包含 format() 函数的类。为了获得给定参数的格式值和传递给此方法的参数文本的已附加字符串生成器,请使用 ChoiceFormat 类。语法:public StringBuffer format(double...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India