[C & C++]十進制轉換二進制
今天因為程式用到了十進制轉二進制的轉換,但是以前都是使用了陣列的方式存放餘數
再從陣列倒著print出來,就上網google了一下
發現了以前從沒看過的東西,讓我大開眼界!! 先紀錄下來晚點在來研究研究~
依 IEEE 754的規範,float 的 mantissa 占23個位元,再加上一個隱性位元,共24個位元,因此程式顯示出來的二進位,必在24個位元以內。
Q1:
z <<= 1;這代表什麼意思
A1:
z 位元左移一位,相當於 z = z * 2
Q2:
printf("%d",(x & z) != 0);這又代表什麼意思
A2:
x & z 是 x 和 z 做 [位元AND] 運算
(x & z) != 0); 的動作是:
若上述的運算結果不等於0,結果為 true,即 數值 1;
否則為 false, 即數值 0
轉貼自yahoo知識+
沒有留言:
張貼留言