目录
什么是十六进制数
什么是八进制
我们必须做什么
示例
算法
输出
首页 后端开发 C++ C程序中的十六进制转八进制程序

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

Aug 29, 2023 pm 02:17 PM
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
    • < /ul>
    • 返回结果。

    算法

    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] != &#39;\0&#39; and i++ {
          binary = binary * place;
          switch (hex[i]) {
             case &#39;0&#39;:
                binary += 0
             case &#39;1&#39;:
                binary += 1
             case &#39;2&#39;:
                binary += 10
             case &#39;3&#39;:
                binary += 11
             case &#39;4&#39;:
                binary += 100
             case &#39;5&#39;:
                binary += 101
             case &#39;6&#39;:
                binary += 110
             case &#39;7&#39;:
                binary += 111
             case &#39;8&#39;:
                binary += 1000
             case &#39;9&#39;:
                binary += 1001
             case &#39;a&#39;:
             case &#39;A&#39;:
                binary += 1010
             case &#39;b&#39;:
             case &#39;B&#39;:
                binary += 1011
             case &#39;c&#39;:
             case &#39;C&#39;:
                binary += 1100
             case &#39;d&#39;:
             case &#39;D&#39;:
                binary += 1101;
                break;
             case &#39;e&#39;:
             case &#39;E&#39;:
                binary += 1110;
                break;
             case &#39;f&#39;:
             case &#39;F&#39;:
                binary += 1111;
                break;
             default:
                printf("Invalid hexadecimal input.");
          }
          place = 10000;
       }
       return binary;
    }
    long long int binary_oct(long long binary) {
       long long int octal, place;
       int i = 0, rem, val;
       octal = 0ll;
       place = 0ll;
       place = 1;
       while (binary > 0) {
          rem = binary % 1000;
          switch (rem) {
          case 0:
             val = 0;
             break;
          case 1:
             val = 1;
             break;
          case 10:
             val = 2;
             break;
          case 11:
             val = 3;
             break;
          case 100:
             val = 4;
             break;
          case 101:
             val = 5;
             break;
          case 110:
             val = 6;
             break;
          case 111:
             val = 7;
             break;
          }
          octal = (val * place) + octal;
          binary /= 1000;
          place *= 10;
       }
       return octal;
    }
    long long int hexa_oct(char hex[]) {
       long long int octal, binary;
       // convert HexaDecimal to Binary
       binary = hexa_binary(hex);
       // convert Binary to Octal
       octal = binary_oct(binary);
       return octal;
    }
    int main() {
       char hex[20] = "1a99";
       printf("Octal Value = %lld", hexa_oct(hex));
       return 0;
    }
    登录后复制

    示例

    #include <stdio.h>
    #include <string.h>
    #include <math.h>
    //To convert hex to binary first
    long long int hexa_binary(char hex[]) {
       long long int binary, place;
       int i = 0, rem, val;
       int n = strlen(hex);
       binary = 0ll;
       place = 0ll;
       for (i = 0; hex[i] != &#39;\0&#39;; i++) {
          binary = binary * place;
          switch (hex[i]) {
          case &#39;0&#39;:
             binary += 0;
             break;
          case &#39;1&#39;:
             binary += 1;
             break;
          case &#39;2&#39;:
             binary += 10;
             break;
          case &#39;3&#39;:
             binary += 11;
             break;
          case &#39;4&#39;:
             binary += 100;
             break;
          case &#39;5&#39;:
             binary += 101;
             break;
          case &#39;6&#39;:
             binary += 110;
             break;
          case &#39;7&#39;:
             binary += 111;
             break;
          case &#39;8&#39;:
             binary += 1000;
             break;
          case &#39;9&#39;:
             binary += 1001;
             break;
          case &#39;a&#39;:
          case &#39;A&#39;:
             binary += 1010;
             break;
          case &#39;b&#39;:
          case &#39;B&#39;:
             binary += 1011;
             break;
          case &#39;c&#39;:
          case &#39;C&#39;:
             binary += 1100;
             break;
          case &#39;d&#39;:
          case &#39;D&#39;:
             binary += 1101;
             break;
          case &#39;e&#39;:
          case &#39;E&#39;:
             binary += 1110;
             break;
          case &#39;f&#39;:
          case &#39;F&#39;:
             binary += 1111;
             break;
          default:
             printf("Invalid hexadecimal input.");
          }
          place = 10000;
       }
       return binary;
    }
    //To convert binary to octal
    long long int binary_oct(long long binary) {
       long long int octal, place;
       int i = 0, rem, val;
       octal = 0ll;
       place = 0ll;
       place = 1;
       // giving all binary numbers for octal conversion
       while (binary > 0) {
          rem = binary % 1000;
          switch (rem) {
          case 0:
             val = 0;
             break;
          case 1:
             val = 1;
             break;
          case 10:
             val = 2;
             break;
          case 11:
             val = 3;
             break;
          case 100:
             val = 4;
             break;
          case 101:
             val = 5;
             break;
          case 110:
             val = 6;
             break;
          case 111:
             val = 7;
             break;
          }
          octal = (val * place) + octal;
          binary /= 1000;
          place *= 10;
       }
       return octal;
    }
    // to convert the hexadecimal number to octal
    long long int hexa_oct(char hex[]) {
       long long int octal, binary;
       // convert HexaDecimal to Binary
       binary = hexa_binary(hex);
       // convert Binary to Octal
       octal = binary_oct(binary);
       return octal;
    }
    //main function
    int main() {
       char hex[20] = "5CD";
       printf("Octal Value = %lld", hexa_oct(hex));
       return 0;
    }
    登录后复制

    输出

    Octal Value = 2715
    登录后复制

    以上是C程序中的十六进制转八进制程序的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

将以下内容翻译为中文:C程序将罗马数字转换为十进制数字 将以下内容翻译为中文:C程序将罗马数字转换为十进制数字 Sep 05, 2023 pm 09:53 PM

给出以下是一个将罗马数字转换为十进制数字的C语言算法:算法步骤1-开始步骤2-在运行时读取罗马数字步骤3-长度:=strlen(roman)步骤4-对于i=0到长度-1   步骤4.1-switch(roman[i])     步骤4.1.1-case'm':    &nbs

C++程序比较两个字符串的字典序 C++程序比较两个字符串的字典序 Sep 04, 2023 pm 05:13 PM

字典序字符串比较是指字符串按照字典顺序进行比较。例如,如果有两个字符串'apple'和'appeal',第一个字符串将排在后面,因为前三个字符'app'是相同的。然后对于第一个字符串,字符是'l',而在第二个字符串中,第四个字符是'e'。由于'e'比'l'短,所以如果我们按照字典顺序排列,它将排在前面。在安排之前,字符串按字典顺序进行比较。在本文中,我们将看到使用C++进行按字典顺序比较两个字符串的不同技术。在C++字符串中使用compare()函数C++string对象有一个compare()

C++程序以给定值为参数,找到双曲正弦反函数的值 C++程序以给定值为参数,找到双曲正弦反函数的值 Sep 17, 2023 am 10:49 AM

双曲函数是使用双曲线而不是圆定义的,与普通三角函数相当。它从提供的弧度角返回双曲正弦函数中的比率参数。但要做相反的事,或者换句话说。如果我们想根据双曲正弦值计算角度,我们需要像双曲反正弦运算一样的反双曲三角运算。本课程将演示如何使用C++中的双曲反正弦(asinh)函数,使用双曲正弦值(以弧度为单位)计算角度。双曲反正弦运算遵循以下公式-$$\mathrm{sinh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:+\:1})},其中\:In\:是\:自然对数\:(log_e\:k)

C程序以找到链表的长度 C程序以找到链表的长度 Sep 07, 2023 pm 07:33 PM

链接列表使用动态内存分配,即它们相应地增长和收缩。它们被定义为节点的集合。这里,节点有两部分,即数据和链路。数据、链接和链表的表示如下-链表的类型链表有四种类型,如下:-单链表/单链表双/双向链表循环单链表循环双链表我们使用递归方法求链表长度的逻辑是-intlength(node*temp){  if(temp==NULL)   returnl;  else{&n

C++程序打印字典 C++程序打印字典 Sep 11, 2023 am 10:33 AM

映射是C++中的一种特殊类型的容器,其中每个元素都是一对两个值,即键值和映射值。键值用于索引每个项目,映射值是与键关联的值。无论映射值是否唯一,键始终是唯一的。要在C++中打印映射元素,我们必须使用迭代器。一组项目中的一个元素由迭代器对象指示。迭代器主要与数组和其他类型的容器(例如向量)一起使用,并且它们具有一组特定的操作,可用于识别特定范围内的特定元素。可以增加或减少迭代器来引用范围或容器中存在的不同元素。迭代器指向范围内特定元素的内存位置。使用迭代器在C++中打印地图首先,我们看一下如何定义

C程序使用rename()函数更改文件名 C程序使用rename()函数更改文件名 Sep 21, 2023 pm 10:01 PM

rename函数将文件或目录从旧名称更改为新名称。此操作类似于移动操作。因此,我们也可以使用此rename函数来移动文件。此函数存在于stdio.h库头文件中。rename函数的语法如下:intrename(constchar*oldname,constchar*newname);rename()函数的功能它接受两个参数。一个是oldname,另一个是newname。这两个参数都是指向常量字符的指针,用于定义文件的旧名称和新名称。如果文件重命名成功,则返回零;否则,返回非零整数。在重命名操作期间

获取给定复数的虚部的C++程序 获取给定复数的虚部的C++程序 Sep 06, 2023 pm 06:05 PM

现代科学在很大程度上依赖于复数的概念,这一概念最初是通过GirolamoCardano在16世纪引入的在17世纪初建立。复数的公式是a+ib,其中a保留html代码并且b是实数。一个复数被认为有两个部分:实部<a>和虚部(<ib>)。i或iota的值为√-1。C++中的复数类是一个用于表示复数的类。C++中的complex类可以表示并控制几个复数操作。我们来看一下如何表示和控制显示复数。imag()成员函数如前所述,复数由实部和虚部两部分组成。显示实部我们使用real()

C++程序来检查一个字符是否为字母或非字母 C++程序来检查一个字符是否为字母或非字母 Sep 14, 2023 pm 03:37 PM

在解决一些逻辑编程问题时,使用字符串或字符有时非常有用。字符串是字符的集合,字符是1字节数据类型,用于保存ASCII值中的符号。符号可以是英文字母、数字或特殊字符。在本文中,我们将学习如何使用C++检查一个字符是否是英文字母或字母表中的字母。检查isalpha()函数要检查数字是否是字母,我们可以使用ctype.h头文件中的isalpha()函数。这将一个字符作为输入,如果是字母表,则返回true,否则返回false。让我们看看下面的C++实现来了解这个函数的用法。Example的中文翻译为:示

See all articles