看板 C_and_CPP 關於我們 聯絡資訊
以下純屬惡搞,小朋友不要學 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
VictorTom:這個寫法真的是太超過了....>_<# 09/18 10:07
VictorTom:等等, 看到l大這個寫法我才注意到我好像寫錯了.... 09/18 10:13
VictorTom:輸入0的話, 其實二進位的長度應該是1不是0對吧....Orz 09/18 10:13
bleed1979:這個要定義 因為00或000000或0都是代表0 09/18 11:16
VictorTom:個人覺得應該就是要用0, 不然001也是1啊....XD 09/18 11:28
VictorTom:也可以這樣推, 0~9我們認為是都只有個位; 10~99就有十位 09/18 11:34
VictorTom:100~999就有百位; 所以二進位十0與1應該都算長度1吧:) 09/18 11:34
johnjohnlin:誰能解釋一下= =? 09/18 20:08
VictorTom:這, 小弟說的很難懂嗎Q_Q~ 還是是說解釋l大的XD 09/18 20:50