當前位置:首頁 » 編程語言 » c語言十進制轉二進製程序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言十進制轉二進製程序

發布時間: 2022-02-14 23:23:51

㈠ 如何用c語言編寫將十進制的數轉換成二進制數的程序

簡單辦法是用聯合體,直接列印出來。
typedef union DANDB {
unsigned long int i; // 存放十進制數
unsigned char c[4]; // 按字元(bit) 直接列印它出來
} DandB;

int main()
{
int i,j;
DandB v; // v 是這種聯合體變數
printf("Please enter a integer data\n");
scanf("%d",&v.i); // 輸入正整數
// v.i = 15;
for (i=3;i>=0;i--){
for (j=7;j>=0;j--)
printf("%1d", (v.c[i] >> j) & 1); // 按字元把32位二進制列印出來
}
===
手工計算,要不斷除2取余,獲得所有位,再列印出來。

㈡ 求十進制轉換二進制C語言代碼

求十進制轉換二進制C語言代碼代碼如下:

#include <stdio.h>

#define NR (sizeof(int)*8) // 二進制位的個數

void deciToBin(int num); // 十進制轉換為二進制函數聲明

/* 主函數 */

int main(void)

{

int num;

fprintf(stdout, "請輸入一個正整數:");

/* 獲取並檢查用戶輸入 */

while (1)

{

if (fscanf(stdin, "%d", &num) != 1)

{

fprintf(stderr, "輸入錯誤!請重新輸入:");

while (getchar() != ' '); // 去掉多餘的非法字元

continue;

}

else if (num < 0) // 輸入的數不能為負數

{

fprintf(stderr, "請輸入錯誤!請輸入正整數:");

continue;

}

else

break;

}

fprintf(stdout, "對應二進制為:");

#if 1 /* 方法一: 不使用遞歸 */

char bitArr[NR];

int i = -1;

/* 演算法:棧的數學模型 */

do {

i += 1;

bitArr[i] = num % 2;

num /= 2;

} while (num != 0);

/* 逆序列印 */

for (i ; i >= 0; i--)

{

fprintf(stdout, "%d", bitArr[i]);

}

fputc(' ', stdout);

#else /* 方法二: 使用遞歸 */

if (num == 0)

{

fprintf(stdout, "0 ");

}

else

{

deciToBin(num); // 調用第歸函數

fputc(' ', stdout);

}

#endif

return 0;

}

/*

* @函數名:deciToBin

* @函數功能:實現十進制轉換為二進制

* @參數:需要轉換的十進制整數

*/

void deciToBin(int num)

{

/* 第歸結束條件 */

if (num == 0)

{

return;

}

/* 第歸調用 */

deciToBin(num/2);

/* 逆序列印 */

fprintf(stdout, "%d", num%2);

}

(2)c語言十進制轉二進製程序擴展閱讀:

使用C語言編程實現任意進制數(2-16進制)轉換為其他任意進制數(2-16進制)方法:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

int TenNum(char a[],int B);

void Numchange(int m, int B);

int TenNum(char a[], int B)

{

int len, i, num;

int sum = 0;

len = strlen(a);

for (i = 0; i < len; i++)

{

if (a[i] >= '0' && a[i] <= '9')

num = a[i] - '0';

else if (a[i] >= 'A' && a[i] <= 'F')

num = a[i] - 'A' + 10;

sum = sum * B + num;

}

return sum;

}

void Numchange(int m, int B)

{

int n;

if (m)

{

Numchange(m / B, B);

n = m % B;

if (n < 10)

printf("%d", n);

else

printf("%c", n + 55);

}

}

int main()

{

int B, b;

char a[20];

printf("請輸入待轉換數的進制(2-16):");

do {

scanf_s("%d", &B);

} while (B < 2 && B > 16);

printf("請輸入待轉換數:");

getchar();

gets_s(a);

int m = TenNum(a, B);

printf("請輸入需要轉成幾進制數(2-16):");

do {

scanf_s("%d", &b);

} while (B < 2 && B > 16);

printf("%d進制數%s轉換為%d進制數的結果為:",B,a,b);

Numchange(m, b);

printf(" ");

system("pause");

return 0;

}

㈢ c語言怎麼將十進制轉化成二進制

#include <stdio.h>

void main()

{

//進制轉換函數的聲明

int transfer(int x);

int x;

printf("請輸入一個十進制數:");

scanf("%d",&x);

printf("轉換成二進制數是:%d ",transfer(x));

}

int transfer(int x)

{

int p=1,y=0,yushu;

while(1)

{

yushu=x%2;

x/=2;

y+=yushu*p;

p*=10;

if(x<2)

{

y+=x*p;

break;

}

}

return y;

}

89÷2 ……1

44÷2 ……0

22÷2 ……0

11÷2 ……1

5÷2 ……1

2÷2 ……0

1

十進制小數轉二進制數:「乘以2取整,順序排列」(乘2取整法)

網路-二進制

㈣ C語言 將十進制數轉化為二進制數 程序代碼

#include <stdio.h>

void main()
{
int a;
scanf(\"%d\",&a);//輸入一個10進制數。

int result=0;//存儲a的二進制結果。
int p=1;//p=1表示個位數

do
{
int b=a%2;//b是余數,第一個余數是二進制的個位。
result=result+p*b;
p=p*10;//*10表示下個是10位數。
a=a/2;
}while(a);

printf(\"\\n%d\\n\",result);
}

程序在vc6.0下編譯通過可以直接用,你自己看看吧,思路是a%2的結果是二進制的個位數,(a/2)%2的結果是二進制的十位數所以p擴大10倍,以後依次類推。

㈤ C語言中怎樣調用函數將十進制轉換成二進制

1、打開visualC++6.0-文件-新建-文件-C++SourceFile。

㈥ C語言如何寫十進制轉二進制的程序

#include <stdio.h>
void trans(int x)
{
int a[30];
int i=0,rem;
do{
rem=x%2;x=x/2;
a[i]=rem;
i++;
}while(x!=0);
while(i>0)
printf("%d",a[--i]);
printf("\n");
}
void main()
{
int d;
printf("請輸入一個十進制的正整數:\n");
do scanf("%d",&d);while(d<0);
trans(d);
}

㈦ 用C語言編寫二進制轉換十進制的程序。

1、為了完成進制的轉換,在主函數中聲明了個函數Sum,主要用於將二進制的每一位轉換為十進制後的數相加,返回值就是相加後的和。另外定義了一個數組array[8],用於存放輸入的八位二進制數。