昨天晚上朋友讓幫忙寫個程式,c++中將float轉換成二進位製流輸出,剛開始一點點的轉啊,哎,直接哭了。一晚上也沒搞定。
回去查了點資料,又找同學商量了一下,找到個相對好的點的方法,驗證了幾個,結果是對的,但也不保證其他的也對,貼出來,大家交流一下
步驟:1、首先取float的位址,強制轉換成char*型別後賦值給乙個char *的指標cp,然後對cp開始的四個位元組按照char型別轉換成二進位制字串。
2、轉換結束之後,對計算機進行高低位元組序判斷,若是高位元組序,則對得到的二進位制字串進行逆序。
==》這一步有問題,位元組序判斷後的調整不應該是對整個二進位制字串進行逆序,而是對四個位元組進行順序調整,在此謝謝
azrael_cc 兄,**直接調整了一下,沒驗證結果
**:
#include #include using namespace std;
string c2b(char *cp, int n);
int isbigendian();
int main()
//此處的ret為處理結束後的結果
cout<> 1;
for(int j = 0; j < 8; j++)
}return tmpstr;
}/**
*@fun 判斷計算機高低位元組序
***/
int isbigendian()
執行結果 二進位制轉換
e.g 二進位制轉換為八進位制 e.g 求10111001的八進位制 三位三位擷取,分解為 10 111 001 001 2的0次 1 111 2的0次 2的1次 2的2次 7 10 2的0次 2的1次 2 所以,八進位制為271 二進位制轉換為十六進製制 e.g 求10111001的十六進製制 四...
二進位制轉換
負整數小數 負小數十進位制 2的次冪 二進位制1 200001221 0010 321 20 0011422 0100 522 20 0101 622 21 0110 722 21 20 0111823 1000 比如 100轉成二進位制 1,轉成2的次冪 100 26 25 22 2,0000 0...
縮短二進位制(進製轉換)
題目鏈結 題目描述 我們處理的整數通常用十進位制表示,在計算機記憶體中是以二進位制補碼形式儲存,但通常二進位制表示的整數比較長,為了便於在程式設計過程中理解和處理資料,通常採用八進位制和十六進製制,縮短了二進位制補碼表示的整數,但保持了二進位制數的表達特點。請輸出十進位制整數1234對應的八進位制和...