C程序中的十六进制转八进制程序

我们得到一个十六进制数字作为字符串;任务是将其转换为八进制。要将十六进制数转换为八进制数,我们必须 -

  • 找到与十六进制数等效的二进制数。
  • 将二进制数转换为八进制数。

什么是十六进制数

十六进制数是以16为基数的数字,数字从0到9,从10开始数字表示为A其中代表 10,B 代表 11,C 代表 12,D 代表 13,E 代表 14,F 代表 15。

要将十六进制数转换为二进制数,每个数字都会转换为 4 位的二进制数

什么是八进制

计算机中的八进制以8为基数表示,即0-7的八进制数由三个二进制数或三个二进制数字组成。

我们必须做什么

就像我们有一个十六进制数 1A6,所以它现在对于十六进制表示 1、10 和 6首先,我们必须找到十六进制数的二进制等价物,即,

C程序中的十六进制转八进制程序

因此,1A6 的二进制 = 0001 1010 0110

现在找到十六进制数的二进制后,下一个任务是找到八进制

在此之前,我们将二进制数分为三组。分组为 3 后,我们将得到 000 110 100 110

其八进制表示形式为 -

C程序中的十六进制转八进制程序

因此十六进制数 1A6 的八进制表示为 − 646

示例

Input: 1A6 Output: Octal Value = 646 Explanation: Input: 1AA Output: 652登录后复制

  • 获取输入并将其存储为字符串。
  • 转换十六进制数或表达式转换为二进制,按照以下方法 -
    • 通过添加各自的二进制表示来检查所有 16 种十六进制情况。
    • 返回结果。
  • 按照以下步骤将二进制数转换为八进制数 -
    • 通过比较二进制数与八进制数的所有可能情况,取 3 个位置.
    • 设置八进制的值=(val * place)+八进制;
    • 二进制数除以1000
    • place *= 10
  • 返回结果。

算法

Start Step 1-> In function long long int hexa_binary(char hex[]) Declare variables binary, place Declare and initialize i = 0, rem, val Initialize t n = strlen(hex) Initialize binary = 0ll and place = 0ll Loop For i = 0 and hex[i] != '