本文目錄一覽:
用C語言如何將十進制轉換為二進制
1、打開visual C++ 6.0-文件-新建-文件-C++ Source File
2、定義數組和變量:
#include stdio.h
#include stdlib.h
void main()
{
int i, j, n, m; /*定義變量i,j,n,m*/
int a[16] ={0}; /*定義數組a,元素初始值為0*/
system(“cls”); /*清屏*/
3、輸入十進制數:
printf(“請輸入一個十進制數(0~32767):\n”);
scanf(“%d”, n); /*輸入n的值*/
4、計算二進制數:
for (m = 0; m 15; m++) /*for循環從0到14,最高為符號位,本題始終為0*/
{
i = n % 2; /*取2的餘數*/
j = n / 2; /*取被2整除的結果*/
n = j; /*將得到的商賦給變量n*/
a[m] = i; /*將餘數存入數組a中*/
5、輸出二進制數:
for (m = 15; m = 0; m–)
{
printf(“%d”, a[m]); /*for循環,將數組中的16個元素從後往前輸出*/
if (m % 4 == 0)
printf(” “); /*每輸出4個元素,輸出一個空格*/
}
printf(“\n”);
6、完整的源代碼:
#include stdio.h
#include stdlib.h
void main()
{
int i, j, n, m; /*定義變量i,j,n,m*/
int a[16] ={0}; /*定義數組a,元素初始值為0*/
system(“cls”); /*清屏*/
/*輸出雙引號內普通字符*/
printf(“請輸入一個十進制數(0~32767):\n”);
scanf(“%d”, n); /*輸入n的值*/
for (m = 0; m 15; m++) /*for循環從0到14,最高為符號位,本題始終為0*/
{
i = n % 2; /*取2的餘數*/
j = n / 2; /*取被2整除的結果*/
n = j; /*將得到的商賦給變量n*/
a[m] = i; /*將餘數存入數組a中*/
}
for (m = 15; m = 0; m–)
{
printf(“%d”, a[m]); /*for循環,將數組中的16個元素從後往前輸出*/
if (m % 4 == 0)
printf(” “); /*每輸出4個元素,輸出一個空格*/
}
printf(“\n”);
}
用c語言編寫十進制轉化二進制
#include stdio.h
void d2n(unsigned long d,int n)
{
if(d=n)
{
d2n(d/n,n);
}
printf(“%c”,”0123456789ABCDEF”[d%n]);
}
int main()
{
unsigned long d;
int n;
scanf(“%lu”,d);
d2n(d,2);
return 0;
}
c語言怎麼將十進制轉化成二進制
#include stdio.h
void main()
{
//進制轉換函數的聲明
int transfer(int x);
int x;
printf(“請輸入一個十進制數:”);
scanf(“%d”,x);
printf(“轉換成二進制數是:%d\n”,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(x2)
{
y+=x*p;
break;
}
}
return y;
}
擴展資料:
(1)二進制轉十進制
方法:「按權展開求和」
【例】:
規律:個位上的數字的次數是0,十位上的數字的次數是1,……,依次遞增,而十分位的數字的次數是-1,百分位上數字的次數是-2,……,依次遞減。
注意:不是任何一個十進制小數都能轉換成有限位的二進制數。
(2)十進制轉二進制
十進制整數轉二進制數:「除以2取余,逆序排列」(除二取余法)
【例】:
89÷2 ……1
44÷2 ……0
22÷2 ……0
11÷2 ……1
5÷2 ……1
2÷2 ……0
1
十進制小數轉二進制數:「乘以2取整,順序排列」(乘2取整法)
參考資料:
百度百科-二進制
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/297352.html