求將十進位制IP轉換成二進位制的C語言演算法

2022-03-09 09:19:51 字數 6007 閱讀 7206

1樓:

#include

#include

main()

,bin_str[33]=;

scanf("%s",ip_str);

ip=(i1<<24)+(i2<<16)+(i3<<8)+i4;//實在不行,這裡可以在每個移位前強制轉換成long型

for(i=31;i>=0;i--)sprintf(bin_str,"%s%d",bin_str,(ip&(1<>i);

printf(" ip(dec):%s \n ip(hex):%x \n ip(bin):%s\n",ip_str,ip,bin_str);}

2樓:匿名使用者

幫樓主改改:

#include

unsigned long inet_aton(const char *cp)

}while (*cp++);

/* 處理"255.0"這樣的輸入*/

if (dots < 3)

addr <<= 8 * (3 - dots) ;

return addr;

}main()

----------------------------------------

其實有現成的函式inet_aton()和inet_ntoa();

struct in_addrs_un_b;

structs_un_w;

u_long s_addr;

}s_un;

};int inet_aton(const char *cp, struct in_addr *ap)

}while (*cp++);

// normalize the addressif (dots < 3)

addr <<= 8 * (3 - dots) ;

//store it if requestedif (ap) ap->s_addr = htonl(addr);

return 1;}

3樓:

用inttohex, hextobin一個位元組一個位元組的轉.

一道c語言程式設計題,將十進位制轉換為二進位制

4樓:匿名使用者

1、開啟visual c++ 6.0-檔案-新建-檔案-c++ source file。

2、定義陣列

和變數:#include #include void main()/*定義陣列a,元素初始值為0*/system("cls");/*清屏*/。

3、輸入十進位制數:printf("請輸入一個十進位制數輸入n的值*/。

4、計算二進位制數:for (m = 0; m < 15; m++)/*for迴圈從0到14,最高為符號位,本題始終為0*/。

5、最後執行一下看看結果,就完成了。

5樓:四舍**入

將十進位制轉換為

二進位制可以參考下面的**:

方法一#include

int a[8];

int main()

void binary(int n)

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

}方法二

#include

int main()

int e;

for(e=100;e>=0;e--)

printf("十進位制數%d轉換成二進位制數為:",l);

int i;

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

printf("%d",sz[i]);

printf("\n");}

6樓:匿名使用者

#include

int a[8];

int main()

void binary(int n)

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

c語言編寫一個程式,將十進位制整數n 轉換成二進位制數

7樓:匿名使用者

#include

int transfer(int x)

}return y;

}void main()

擴充套件資料:

c語言書寫規則:

1.一個說明或一個語句佔一行。

2.用{} 括起來的部分,通常表示了程式的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。

3.低一層次的語句或說明可比高一層次的語句或說明縮排若干格後書寫。以便看起來更加清晰,增加程式的可讀性。在程式設計時應力求遵循這些規則,以養成良好的程式設計風格。

8樓:匿名使用者

#include

#include

int main()

printf("%d",a);

return 0;}

9樓:匿名使用者

將輸出的內容先放置到一個陣列中,最後陣列反序輸出

10樓:游龍科技工作室

#include//十進位制數轉化為二進位制數void to_binary (int n); //binary n.二進位制的;雙的

int main ( void )

printf("完成");

return 0;

}void to_binary(int n)

如何利用c語言編寫程式將一個十進位制數轉換為二進位制?

11樓:匿名使用者

網上看了很多,下面這個最贊

#include

void showbit(int n)

printf("%d",n%2);

}int main

參考裡面還有其他進位制的轉換,都是利用迭代演算法

12樓:龐綺琴

#include

void change(int x)

change(x>>1);

printf("%d",x&1);

}int main()

c語言將ip地址的二進位制形式轉化為十進位制的形式 5

13樓:dej**u樂桃桃

#include

void main()

while(a!=0);

printf("輸出的二進位制:"); while(i>0)printf("%d",s[--i]); printf("\n");}

14樓:

#include

int main()

,erdn[8]=;

char a[32];

printf("請輸入32位二進位制數 ;\n");

scanf("%s",&a);

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

for(i=8;i<16;i++ )

for(i=16;i<24;i++)

for(i=24;i<32;i++)

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

return 0;}

15樓:匿名使用者

#include "stdio.h"

void main()

; /*查詢表*/

int temp;

int sum;

int i;

int m;

printf("請輸入32位二進位制數字:");

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

scanf("%c",&a[i]);

/*scanf("%s",a);*/ /*可以按字串輸入,字串輸入是要注意末尾的\0*/

printf("輸入的二進位制數字是:\n");

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

printf("%c",a[i]); /*顯示輸入二進位制資料,也可按串輸入*/

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

b[i]=sum;

}printf("輸出的ip地址為:\n");

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

printf("%d\n",b[i]);}

用c語言編寫函式把任意十進位制數轉換成二進位制數

16樓:匿名使用者

#include

main()

for(k=i-1;k!=(-1);k--)// 判斷條件 k!=-1

printf("%d",x[k]);// 輸出專x[k],不屬是x[i]}

17樓:匿名使用者

第一個for語句:(應該是n!=0).要仔細點哦

for(i=0;n!=0;i++)

18樓:匿名使用者

c語言_010_二進位制轉十進位制_上

19樓:尺蠖丨蚩

用while函式,將所得除10並記住除的次數後乘回

用c語言程式設計,實現十進位制和二進位制的相互轉化。

20樓:匿名使用者

#include

int getnumber(char *s,int *n)return k;

}else return 0;

}void exchange(char *s,int n,int k)

for ( i=0;ivoid main()}

21樓:

#include

int main()

printf("二進位制為:");

i--;

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

printf("%d",b[i]);

printf("\n");

break;

case 2:

while(a!=0)

i--;

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

c=c*2+b[i];

printf("十進位制為:%d\n",c);

break;}}

22樓:三國紫星

你是初學吧,建議這個還是自己寫。如果真弄不清,一般書上都會有的。另外,程式設計的問題還是去德問之類的**上問吧!

c語言:將一個十進位制的正整數轉換為二進位制數並輸出結果。

23樓:神速小羊

十進位制整數轉換為二進位制整數採用"除2取餘,逆序排列"法。

具體做法是:用2整除十進位制整數,可以得到一個商和餘數;再用2去除商,又會得到一個商和餘數,如此進行,直到商為0時為止,然後把先得到的餘數作為二進位制數的低位有效位,後得到的餘數作為二進位制數的高位有效位,依次排列起來。

參考**:

#include

int main()

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

printf("%d",a[j]);

printf("\n");

return 0; }/*

輸出:101010*/

24樓:匿名使用者

#include

#include

int main()

25樓:匿名使用者

c語言的版本我以前寫過,不過嫌它太醜而且用處不多久沒存檔。

給你一個c++版本的吧!

#include

int main()

比較方便吧,就靠bitset類就解決了,何樂而不為呢?

26樓:匿名使用者

用位運算

int a

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

b[i]=a&0x0001

a=a>>1

十進位制100 75轉換成二進位制,十進位制100轉二進位制是多少

計算器是不會計算小數的 十進位制100.75轉換成二進位制 先拿整數100除以2。100 2 50餘0,50 2 25餘0,25 2 12餘1,12 2 6餘0,6 2 3餘0,3 2 1,餘1,從後往前看就是1100100 小數75轉換是用乘的,0.75 2 1.50取整數1。用0.50 2 1....

二進位制數11000000轉換成十進位制數是多少

192二進位制是計算技術中廣泛採用的一種數制,二進位制資料是用0和1兩個數碼來表示的數,它的基數為2,進位規則是 逢二進一 和十進位制的 逢十進一 是一個道理。二進位制轉換成十進位制 要從右到左用二進位制的每個數去乘以2的相應次方例如 十進位制的123可以表示成 1 10 2 2 10 1 3 10...

數制轉換 84十進位制轉換成二進位制八進位制以及8421BCD

32轉八 32 8 i 4 0 那麼第一個是 bai4秒的小數位是0 轉八進位制方法 du 二進位制1010100 八進位制124 8421bcd換成十進位制138550221 include include void main b 100 c 100 for int i 1,m n m 0 i a...