#includestdio.h
10多年的黃南州網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網(wǎng)站的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整黃南州建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“黃南州網(wǎng)站設計”,“黃南州網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
#define n 20
void change2(int t)
{ //將十進制數(shù)轉(zhuǎn)換到存放二進制的數(shù)組中
int i;
int b[n]={0};
for(i=0;i20;i++)
{
b[i]=t%2;
t=t/2;
}
for(i=n-1;i=0;i--)
{
printf("%d",b[i]);
}
printf("\n");
}
void main(){
int demo;
printf("請輸入一個十進制數(shù):");
scanf("%d",demo);
change2(demo);
}
這個是
遞歸程序
,程序的意思就是:
十進制轉(zhuǎn)化為2進制,利用輾轉(zhuǎn)除以2取
余數(shù)
的
方式
,這個網(wǎng)上有很多,其他比如十進制轉(zhuǎn)
十六進制
也是這個方式,只不過輾轉(zhuǎn)除以16,直到本身變?yōu)?,每次相除的余數(shù)最后組合成要轉(zhuǎn)換的結果。PKU-一夫
C語言,怎么用遞歸函數(shù),把輸入的一個十進制整數(shù)轉(zhuǎn)換成二進制數(shù)輸出 評論 ┆ 舉報
最佳答案此答案由提問者自己選擇,并不代表百度知道知識人的觀點
回答:w8g8h
學弟
12月21日 09:33 程序的主要思想是:
按位與的特點是,是參與運算的兩數(shù)各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1,否則為0。
也就是說,按位與運算有3個對象,分別是兩個參與運算的兩個數(shù)和運算有的結果。這個和小學學習的普通加法一樣。如:a+b=c,,a,b,c分別是3個對象。同樣的,與運算也是一一樣的意思:a b = c.
只不過是與的意思和加法的意思不一樣而已。
根據(jù)題目要求,我們已經(jīng)得到了一個參與運算的數(shù)據(jù),就是要轉(zhuǎn)換的數(shù),現(xiàn)在我們需要得到轉(zhuǎn)換后的數(shù),根據(jù)與運算規(guī)則,我們構造一個數(shù),分別和待轉(zhuǎn)換的數(shù)進行與運算,得到每一位的值,要么是0,要么是1。
程序如下:
#include stdio.h
int main(void)
{
const int iTimes=sizeof(int) * 8;
int iMask=1;
int x = 12345; 這個就是要轉(zhuǎn)換的數(shù)
int x2[iTimes];
int i;
for( i=0 ; iiTimes ; i++ ){
x2[i]=x iMask;
iMask = iMask 1;
printf("%d",iMask);
}
printf("\n(%d)d=",x);
for( i=iTimes -1 ; i =0 ; i-- ){
printf("%d",x2[i] ? 1 : 0 );
}
return 0;
}
揪錯 ┆ 評論 ┆ 舉報
c語音程序 利用數(shù)組,將輸入的任一十進制數(shù)轉(zhuǎn)換成二進制數(shù)。
#include stdio.h
void main(){int n,a[20],i=0;
scanf("%d",n);
while(n)
{a[i] = n%2;
n /= 2;
i++;
}
printf("\n");
for(int j = i - 1;j=0;j--)
printf("%d",a[i]);
}
編寫函數(shù),將任意輸入的二進制數(shù)轉(zhuǎn)換為十進制數(shù)
不知道你的二進制數(shù)是怎么存的??
假設是存在int array[]數(shù)組中吧,或者char array[]數(shù)組也所謂
int i;
int result = 0;
for( i= 0; i 數(shù)組的長度; i++)
{
result = result * 2 + array[i];
}
上面默認數(shù)組的高位從array[0]開始,若低位從array[0]開始:for( i= 數(shù)組的長度 - 1; i = 0; i)
如果是char數(shù)組處理類似的
PASCAL十進制正整數(shù)轉(zhuǎn)換成八進制數(shù),用遞歸
program pyy;
var
a:integer;
procedure to8(n:integer);
begin
if n=1
then to8(n div 8)
else exit;
write(n mod 8);
end;
begin
readln(a);
to8(a);
readln;
end.
將一個十進制數(shù)轉(zhuǎn)換成二進制數(shù),然后用二進制輸出拜托各位了 3Q
用位運算 int numb;要輸入的數(shù) int i=0x80;2進制是10000000 for(;i!=0;i=1) if(in)printf("1"); else printf("0"); 自己研究一下,沒明白的話補充問題我給你詳解
java中,用遞歸的方式實現(xiàn)十進制數(shù)轉(zhuǎn)換成二進制數(shù)。
你沒給函數(shù)接口,我就用long型做的返回值,不過差不多,加一句toString就可以轉(zhuǎn)成String
class DecimalToBinary{ public long convert(long decimal){ if(decimal = 2){ return this.convert(decimal/2)*10+decimal%2; }else{ return decimal; } }}public class ConvertDemo{ public static void main(String[] args){ DecimalToBinary toBinary = new DecimalToBinary(); System.out.println("1024d convert to binary is:\t"+toBinary.convert(1024)+"b"); }}
編寫函數(shù)fun(),將十進制正整數(shù)轉(zhuǎn)換成k進制數(shù),并按位輸出
/
C-Free 4.1
MinGW 3.4.5
veket的小號
/
#include stdio.h
void DecToK(char *dec, char *kser, int k);
void reverse(char *s);
int main()
{
char a[1024] = "1234";十進制數(shù)字的字符串
char b[1024];存放k進制數(shù)字的字符數(shù)組
DecToK(a, b, 3);轉(zhuǎn)三進制
reverse(b);
printf("%s = %s\n", a, b);
DecToK(a, b, 24);轉(zhuǎn)二十四進制
reverse(b);
printf("%s = %s\n", a, b);
return 0;
}
void DecToK(char *dec, char *kstr, int k)
{
char str[36] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int digit;
char *p = dec;
digit = 0;
while(*p)
{
digit = digit*10 + (*p-'0');
p++;
}
p = kstr;
while(digit)
{
*p = str[digit%k];
digit /= k;
p++;
}
*p = '\0';
}
void reverse(char *s)字符串逆序
{
char *p1 = s;
char *p2 = s;
char temp;
while(*p2)
{
p2++;
}
p2--;
while(p1p2)
{
temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
}
十進制數(shù)轉(zhuǎn)換成二進制數(shù)的c語言程序,采用遞歸與數(shù)組的,要怎么做?(詳細的)
#includestdio.h
void Switch(int num)
{
int i=0,s;
int y[16]={0};
s=num/2;
y[i]=num%2;
i++;
if(s==1)
{
y[i]=1;
for(i=15;i=0;i--)
{
printf("%d",y[i]);
if(i%4==0)
printf(" ");
}
}
if(s==0)
{
y[i]=0;
for(i=15;i=0;i--)
{
printf("%d",y[i]);
if(i%4==0)
printf(" ");
}
}
else
{
num=s;
Switch(num);
}
}
void main()
{
int n;
printf("pleass input a numble:\n");
scanf("%d",n);
printf("result is :\n");
Switch(n);
}
二進制數(shù)1100110轉(zhuǎn)換成十進制整數(shù)等于
(1100110)2
=(((((((0*2+1)*2+1)*2+0)*2+0)*2+1)*2+1)*2+0)10
=((((((1*2+1)*2+0)*2+0)*2+1)*2+1)*2+0)10
=(((((3*2+0)*2+0)*2+1)*2+1)*2+0)10
=((((6*2+0)*2+1)*2+1)*2+0)10
=(((12*2+1)*2+1)*2+0)10
=((25*2+1)*2+0)10
=(51*2+0)10
=(102)10
用pascal編程“將正十進制整數(shù)轉(zhuǎn)換成二進制"
var n:longint;
s:string;
begin
readln(n);
s:='';
repeat
if n mod 2=0 then s:=s+'0' else s:=s+'1';
n:=n div 2;
until n=0;
writeln(s);
end.