Table des matières
什么是十六进制数
什么是八进制
我们必须做什么
示例
算法
输出
Maison développement back-end C++ Programme de conversion hexadécimal en octal dans le programme C

Programme de conversion hexadécimal en octal dans le programme C

Aug 29, 2023 pm 02:17 PM
c程序 十六进制 Octal

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

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

什么是十六进制数

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

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

什么是八进制

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

我们必须做什么

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

Programme de conversion hexadécimal en octal dans le programme C

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

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

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

其八进制表示形式为 -

Programme de conversion hexadécimal en octal dans le programme C

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

示例

Input: 1A6
Output: Octal Value = 646
Explanation:

Input: 1AA
Output: 652
Copier après la connexion

我们将用来解决给定问题的方法 -

  • 获取输入并将其存储为字符串。
  • 转换十六进制数或表达式转换为二进制,按照以下方法 -
    • 通过添加各自的二进制表示来检查所有 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;
    }
    Copier après la connexion

    示例

    #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;
    }
    Copier après la connexion

    输出

    Octal Value = 2715
    Copier après la connexion

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Traduisez ce qui suit en chinois : Programme C pour convertir des chiffres romains en nombres décimaux Traduisez ce qui suit en chinois : Programme C pour convertir des chiffres romains en nombres décimaux Sep 05, 2023 pm 09:53 PM

Vous trouverez ci-dessous un algorithme en langage C pour convertir les chiffres romains en nombres décimaux : Algorithme Étape 1 - Démarrer Étape 2 - Lire les chiffres romains au moment de l'exécution Étape 3 - Longueur : = strlen (roman) Étape 4 - Pour i = 0 à Longueur-1 Étape 4.1-switch(roman[i]) Étape 4.1.1-case'm' : &nbs

Programme C++ pour comparer l'ordre lexicographique de deux chaînes Programme C++ pour comparer l'ordre lexicographique de deux chaînes Sep 04, 2023 pm 05:13 PM

La comparaison de chaînes lexicographiques signifie que les chaînes sont comparées dans l’ordre du dictionnaire. Par exemple, s'il y a deux chaînes « pomme » et « appel », la première chaîne viendra en dernier car les trois premiers caractères de « application » sont identiques. Ensuite, pour la première chaîne, le caractère est « l » et dans la deuxième chaîne, le quatrième caractère est « e ». Puisque « e » est plus court que « l », il viendra en premier si nous trions lexicographiquement. Les chaînes sont comparées lexicographiquement avant d'être arrangées. Dans cet article, nous verrons différentes techniques pour comparer lexicographiquement deux chaînes en utilisant C++. Utilisation de la fonction compare() dans les chaînes C++ L'objet C++string a une fonction compare()

Programme C pour trouver la longueur de la liste chaînée Programme C pour trouver la longueur de la liste chaînée Sep 07, 2023 pm 07:33 PM

Les listes chaînées utilisent l’allocation dynamique de mémoire, c’est-à-dire qu’elles grandissent et diminuent en conséquence. Ils sont définis comme des collections de nœuds. Ici, un nœud comporte deux parties, des données et des liens. Les données, liens et listes chaînées sont représentés comme suit - Types de listes chaînées Il existe quatre types de listes chaînées, comme suit : - Liste chaînée simple / Liste chaînée simple Liste chaînée double / Double Liste chaînée simple circulaire Liste chaînée double circulaire Nous utilisons le méthode récursive pour trouver la longueur de la liste chaînée La logique est -intlength(node ​​*temp){ if(temp==NULL) returnl{&n

Programme C++ pour trouver la valeur de la fonction sinus hyperbolique inverse en prenant une valeur donnée comme argument Programme C++ pour trouver la valeur de la fonction sinus hyperbolique inverse en prenant une valeur donnée comme argument Sep 17, 2023 am 10:49 AM

Les fonctions hyperboliques sont définies à l'aide d'hyperboles au lieu de cercles et sont équivalentes aux fonctions trigonométriques ordinaires. Il renvoie le paramètre de rapport dans la fonction sinus hyperbolique à partir de l'angle fourni en radians. Mais faites le contraire, ou en d’autres termes. Si nous voulons calculer un angle à partir d’un sinus hyperbolique, nous avons besoin d’une opération trigonométrique hyperbolique inverse comme l’opération sinus hyperbolique inverse. Ce cours montrera comment utiliser la fonction sinus hyperbolique inverse (asinh) en C++ pour calculer des angles en utilisant la valeur du sinus hyperbolique en radians. L'opération arc sinus hyperbolique suit la formule suivante -$$\mathrm{sinh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:+\:1})}, Où\:In\:is\:logarithme naturel\:(log_e\:k)

Programme C++ pour imprimer le dictionnaire Programme C++ pour imprimer le dictionnaire Sep 11, 2023 am 10:33 AM

Une carte est un type spécial de conteneur en C++ où chaque élément est une paire de deux valeurs, à savoir une valeur clé et une valeur mappée. La valeur clé est utilisée pour indexer chaque élément et la valeur mappée est la valeur associée à la clé. Que la valeur mappée soit unique ou non, la clé est toujours unique. Pour imprimer des éléments de carte en C++, nous devons utiliser un itérateur. Un élément dans un ensemble d’éléments est indiqué par un objet itérateur. Les itérateurs sont principalement utilisés avec des tableaux et d'autres types de conteneurs (tels que des vecteurs), et ils disposent d'un ensemble spécifique d'opérations qui peuvent être utilisées pour identifier des éléments spécifiques dans une plage spécifique. Les itérateurs peuvent être incrémentés ou décrémentés pour référencer différents éléments présents dans une plage ou un conteneur. L'itérateur pointe vers l'emplacement mémoire d'un élément spécifique dans la plage. Imprimer une carte en C++ à l'aide d'itérateurs Voyons d'abord comment définir

Le programme C utilise la fonction rename() pour changer le nom du fichier Le programme C utilise la fonction rename() pour changer le nom du fichier Sep 21, 2023 pm 10:01 PM

La fonction renommer modifie un fichier ou un répertoire de son ancien nom à son nouveau nom. Cette opération est similaire à l’opération de déplacement. Nous pouvons donc également utiliser cette fonction de renommage pour déplacer des fichiers. Cette fonction existe dans le fichier d'en-tête de la bibliothèque stdio.h. La syntaxe de la fonction rename est la suivante : intrename(constchar*oldname,constchar*newname); La fonction rename() accepte deux paramètres. L’un est l’ancien nom et l’autre le nouveau nom. Les deux paramètres sont des pointeurs vers des caractères constants qui définissent l'ancien et le nouveau nom du fichier. Renvoie zéro si le fichier a été renommé avec succès ; sinon, renvoie un entier différent de zéro. Lors d'une opération de changement de nom

Programme C pour implémenter l'algorithme euclidien Programme C pour implémenter l'algorithme euclidien Sep 17, 2023 pm 12:41 PM

Le problème implémente l'algorithme d'Euclide pour trouver le plus grand commun diviseur (PGCD) et le plus petit commun multiple (LCM) de deux entiers et génère les résultats avec un entier donné. Solution La solution pour implémenter l'algorithme euclidien pour trouver le plus grand commun diviseur (PGCD) et le plus petit commun multiple (LCM) de deux entiers est la suivante - la logique de recherche de GCD et LCM est la suivante - si (firstno*secondno!=0) { pgcd= gcd_rec(firstno,secondno); printf("LeGCDof%dand%dis%d",

Écrivez un programme C qui utilise la fonction de bibliothèque strncmp pour comparer deux chaînes Écrivez un programme C qui utilise la fonction de bibliothèque strncmp pour comparer deux chaînes Sep 09, 2023 pm 01:17 PM

Strncmp est une fonction de bibliothèque prédéfinie, présente dans le fichier string.h, qui est utilisée pour comparer deux chaînes et afficher quelle chaîne est la plus grande. Fonction strcmp (comparaison de chaînes) Cette fonction compare deux chaînes. Il renvoie la différence ASCII du premier caractère non correspondant dans les deux chaînes. Syntaxe intstrcmp(string1,string2); Si la différence est égale à zéro, alors string1=string2. Si la différence est positive, string1>string2. Si la différence est négative, string1<string2. Exemple de fonction strncmp Cette fonction est utilisée pour comparer les n premiers caractères de deux chaînes. chaîne de syntaxe

See all articles