2013-10-28 57 views
1

所以我知道有一種方法可以使用bitset庫將Dec轉換爲二進制,但是您可以使用bitset庫對二進制轉換爲十進制嗎?或者你必須手動執行?C++二進制到十進制

bitset<8> bin_x(number); 
+0

在什麼表示形式你有二進制數?你需要使用'std :: bitset'還是可以使用e。 G。一個字符串(在這種情況下,我建議'std :: strtol()')? – 2013-10-28 05:18:57

+0

只是一個正常的int。例如int x = 1111;我怎樣才能使用位集庫來輸出十進制數「15」從二進制對應「1111」 – ssj3goku878

+0

你可以使用boost? –

回答

2

你可以,但它應該是一個字符串。

std::bitset<8> bits("1111"); 
std::cout << bits.to_ulong() << std::endl; 

您可以將您的整數轉換爲字符串,然後將其傳遞給bitset c-tor。

Live example

+0

好吧,我在這裏遇到問題,我看到你需要括號裏面的引號才能工作,但是如果我把它設置成這樣,我該如何運行這個? std :: bitset <8> bits(BinaryNum); – ssj3goku878

+1

如果'BinaryNum'是char *,或者string都可以正常工作。 – ForEveR