看板 NTUE-CS100 關於我們 聯絡資訊
※ 引述《cair (白色的黑貓)》之銘言: : 最近再找十進位轉二進位的C函式 (因為懶得自己寫了:P) : 上網google出來 好幾個都寫的不怎樣 : 或是不合需求 : 結果找到一個範例看來很不錯 又精簡 我就先加入我的最愛 : 結果才發現網址是 : http://chchwy.blogspot.com/2007/11/blog-post_24.html : 挖 建中哥網誌耶!!!! : 建中哥大大好威阿 >////////< : PS.不過後來用了彥廷建議的 bitset函式這個更短 XDDD : #include <bitset> : int main() { : double n = 923876533; : bitset<sizeof(n) * 8> s(n); : cout << n << " = " << s << endl; : } bitset 字面上是 a set of bits ( 一堆 bit ) bitset 是 C++ 提供一種用類似 array 來存 bit 的資料結構 存在裡面的數字和存在int的一樣可以做 and 、 or 、 not 、 xor 等 bit 運算 另外因為存成類似 array 所以可以對這個二進位數的某一位做運算 ( 或是改變值 ) 例如11001 存在 bitset a 裡面 想知道二進位第二位是多少 只要 cout<<a[1];(從0開始) 11001=25 存在 int b 裡面的話 想知道二進位第二位就要用while取餘數 用法 ( 宣告 ) bitset<長度> 變數(初始值); 長度宣告後固定 上面 sizeof(n)*8 是因為 sizeof 傳回來的是 那個資料型態是多少 byte , byte 是 8 個 bit 變數(初始值) 這個語法是bitset的建構子 所以 bitset<8> a(25); 的 a 資料型態就是是 bitset bitset 詳細功能請參考 http://www.sgi.com/tech/stl/bitset.html -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.121.194.252