[爆卦]十進制轉二進制c是什麼?優點缺點精華區懶人包

為什麼這篇十進制轉二進制c鄉民發文收入到精華區:因為在十進制轉二進制c這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者rm03al6 (天地桑)看板C_and_CPP標題[問題]十進制轉二進制 固定八位元..時間S...


( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )

遇到的問題: (題意請描述清楚)
在設計一個輸入IP位址(十進制) 要轉至成binary
利用atoi && itoa 變成binary之後 前面若要補0 有什麼方法呢?

希望得到的正確結果:
有想過先strlen判斷個數,利用右移的指令,在將前頭補零
可是沒辦法實現..

程式跑出來的錯誤結果:


開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)

Dev-C++
有問題的code: (請善用置底文標色功能)


補充說明:

抓下來的binary值為指標陣列
char *b[4]

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.41.78.26
VictorTom:變成字串了?? printf用 %08s 就可以自己補了....:) 01/02 00:29
VictorTom:C++的話, cout 有一個功能是設定對齊位數與補足字元, 01/02 00:30
VictorTom:只是我不會....orz 01/02 00:30
rm03al6:!!!!真的假的 我試試看 感謝 01/02 00:40
rm03al6:很謝謝!我現在才知道這招~不過我真正想達成的是在陣列裡W. 01/02 01:08
rm03al6:頭補上零 變成八bit 在運算..該怎麼做呢 還懇請幫忙一下 01/02 01:09
MOONRAKER:在二進位的前面bit補上零變成八位運算,這個好笑… 01/02 01:29
MOONRAKER:很久沒有開年就看到那麼好笑的事了,以後看不到怎麼辦… 01/02 01:30
MOONRAKER:好了,為防被罵,跟你講清楚:數字多少進位只有顯示出來 01/02 01:33
MOONRAKER:有差別,補零也是一樣!你要讓他固定為8-bit最好的方法 01/02 01:34
MOONRAKER:就是存到unsigned char裡面,這樣就一定是8-bit! 01/02 01:34
VictorTom:的確XD 如果是搞成字串處裡的話, 想變成8個0/1的char 01/02 01:38
VictorTom:string, 那就 把 printf 變成 sprintf 吧....:) 01/02 01:39
VictorTom:但是, 那個 char *b[4] 我就不太懂是要怎麼用了@_@" 01/02 01:39
VictorTom:話說, atoi是字串轉數字, itoa是數字轉字串, 為什麼會需 01/02 01:41
VictorTom:要兩個一起用啊?? 而且原po說的binary我看起來只像是 01/02 01:42
VictorTom:char array / string 而已....@_@" 01/02 01:42
tw00088437:斷 01/02 01:42
tw00088437:orz!!! 01/02 01:42
VictorTom:水 01/02 01:42
VictorTom:好吧, 樓上你還是斷到了orz 而且我還沒對齊到....XDDD 01/02 01:43
tw00088437:被騙了吧XDDDD 01/02 01:47
rm03al6:嗯..位元前面零這個我懂 只是我要做IP跟network mask的判 01/02 02:02
rm03al6:斷,所以需要將設定其他位元(第八bit開始..遞減) 01/02 02:05
rm03al6:To V大 Input是十進制的ip 想利用itoa變成二進制 01/02 02:08
rm03al6:如果coding的想法有可能有錯 還請多包涵吶 01/02 02:12
VictorTom:那個~~請再思考一下M大說的, 一個數是幾進制的, 只和它 01/02 02:23
VictorTom:呈現的樣子有不同, 本質是一樣的, 0xFF, 255, 11111111b 01/02 02:24
VictorTom:上面幾個數對電腦來說是一模一樣的. 然後, itoa是把數轉 01/02 02:25
rm03al6:嗯嗯!!我觀念不太清楚 謝謝M大跟V大 的提醒 01/02 02:25
VictorTom:程字串, 原本一個數255(或0xFF), 會被轉成"255"(字串) 01/02 02:25
VictorTom:變成字串之後你更沒辦法做subnet mask之類的運算.... 01/02 02:26
VictorTom:比如, 140要和255做AND運算, 用二進位來想是我們寫計算 01/02 02:28
rm03al6:嗯嗯~~好的!!我再來再一下程式 01/02 02:28
VictorTom:過程會比較簡單, 實際上程式就是做 140 & 255 的計算, 01/02 02:28
VictorTom:(你喜歡用 140 & 0xFF 也行), 所以我不太清楚你是否需要 01/02 02:29
VictorTom:itoa; C的字串輸出好像也沒有自動轉成2進位的方式, 所以 01/02 02:30
VictorTom:你就算想把它轉成 11111111 這個型式, 還是得自己處理:) 01/02 02:31
rm03al6:嗯嗯!!謝謝指點:D 01/02 03:19

你可能也想看看

搜尋相關網站