Re: [問題] 計算數字的二進制長度

看板C_and_CPP (C/C++)作者 (我要加入劍道社!)時間16年前 (2009/09/18 09:50), 編輯推噓5(504)
留言9則, 3人參與, 最新討論串4/4 (看更多)
以下純屬惡搞,小朋友不要學 unsigned int binary_length(unsigned int i) { if(!i) return 0; union { float f; struct { unsigned int mantissa:23; unsigned int exp:8; unsigned int sign:1; } i; } u; u.f = i; return u.i.exp - 126; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.29.108

09/18 10:07, , 1F
這個寫法真的是太超過了....>_<#
09/18 10:07, 1F

09/18 10:13, , 2F
等等, 看到l大這個寫法我才注意到我好像寫錯了....
09/18 10:13, 2F

09/18 10:13, , 3F
輸入0的話, 其實二進位的長度應該是1不是0對吧....Orz
09/18 10:13, 3F

09/18 11:16, , 4F
這個要定義 因為00或000000或0都是代表0
09/18 11:16, 4F

09/18 11:28, , 5F
個人覺得應該就是要用0, 不然001也是1啊....XD
09/18 11:28, 5F

09/18 11:34, , 6F
也可以這樣推, 0~9我們認為是都只有個位; 10~99就有十位
09/18 11:34, 6F

09/18 11:34, , 7F
100~999就有百位; 所以二進位十0與1應該都算長度1吧:)
09/18 11:34, 7F

09/18 20:08, , 8F
誰能解釋一下= =?
09/18 20:08, 8F

09/18 20:50, , 9F
這, 小弟說的很難懂嗎Q_Q~ 還是是說解釋l大的XD
09/18 20:50, 9F
文章代碼(AID): #1AikTHPb (C_and_CPP)
文章代碼(AID): #1AikTHPb (C_and_CPP)