Comment convertir un nombre décimal en binaire : continuez à diviser le nombre décimal par 2 jusqu'à ce que le quotient soit zéro, puis écrivez le reste de bas en haut ; le code de conversion "int main(void){int n,len;int a[ 20];scanf("%d",&n);while(n/2){a[len++]=n%2;n=n/2;}a[len++]=n%2;for(i=len -1;i>=0;i--){printf("%d",a[i]);}}".
L'environnement d'exploitation de ce tutoriel : système Windows 7, version c99, ordinateur Dell G3.
Conversion décimale en binaire du langage C
En langage C, la conversion de décimal vers d'autres bases est plus compliquée.
L'entier décimal est converti en un entier de base N en utilisant la méthode "diviser par N, prendre le reste et organiser dans l'ordre inverse". La méthode spécifique est la suivante :
Utilisez N comme diviseur, divisez l'entier décimal par N, vous pouvez obtenir un quotient et un reste
Gardez le reste, continuez à diviser par N avec le quotient et obtenez un ; nouveau quotient et reste
Conservez toujours le reste, continuez à diviser par N avec le quotient, et vous obtiendrez un nouveau quotient et un nouveau reste
...
Répétez ceci en conservant le reste ; à chaque fois, et divisez avec le quotient N jusqu'à ce que le quotient soit 0.
Prenez le reste obtenu en premier comme chiffre de poids faible du nombre de base N, et le reste obtenu plus tard comme chiffre de poids fort du nombre de base N. Disposez-les afin d'obtenir la base N. nombre.
Et Si vous souhaitez convertir un nombre décimal en binaire, vous devez utiliser le principe de « diviser par 2, prendre le reste et organiser dans l'ordre inverse » :
Divisez continuellement le nombre par 2 jusqu'à ce que le quotient est zéro, puis écrivez le reste de bas en haut, vous pouvez obtenir la représentation binaire du nombre.
La figure suivante montre le processus de conversion du nombre décimal 42 en binaire :
D'après la figure, le résultat de la conversion du nombre décimal 42 en binaire est 101010.
Code d'implémentation :
#include <stdio.h> int main(void) { int n,length; //length用来装二进制数的个数 int a[20]; //定义一个数组来装余2得到的余数 scanf("%d",&n); //输入十进制的数字 while(n/2){ //当n=1时,n/2=0,此时while(0)不执行while中的语句,直接执行下面的语句 a[length++] = n%2; //将除2得到的余数装入数组中 n = n/2; //除二 } a[length++] = n%2; //存储最后一个余数 //将余数从下往上输出 for(int i = length-1;i>=0;i--) printf("%d",a[i]); }
Recommandations associées : "Tutoriel vidéo C"
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!