我有一個變量,它的類型是bitset < 16>。我想獲得我的變量的第一個8位,並將其放入char變量。我知道如何將bitset轉換爲char,但我不知道如何選擇第一個8位並將其轉換爲char。如何在C++中從位集<16>中選擇第一個8位?
3
A
回答
4
如果 「前8位」 你在談論8 MSB,可以考慮使用>>操作符:
#include <iostream>
int main() {
std::bitset<16> myBits(0b0110110001111101);
char reg = 0;
reg = static_cast<char>(myBits.to_ulong() >> 8);
}
+1
感謝Benjamin.it工作完美。 –
1
從doc of the std::bitset constructor:
如果val的值表示大於位集大小,只考慮val的最低有效位。
那麼另一種解決方案可能是:
#include <iostream>
int main() {
std::bitset<16> myBits16(0b0110110001111101);
std::bitset<8> myBits8(myBits16.to_ulong());
char reg = static_cast<char>(myBits8.to_ulong());
}
相關問題
- 1. Z3:如何從8位數組中選擇4個字節?
- 2. 如何僅在視圖中選擇字段前8個位置
- 3. 收集選擇在第一個位置返回空值
- 4. 在子集中選擇第一個
- 5. 從一個集合中快速選擇位
- 6. 選擇哪個結果在MySQL結果集中排在第一位
- 7. 如何使用Linq從C#中的vb.net中選擇位置?
- 8. 從MapView中選擇位置
- 9. 如何在C#中清除一個位?
- 10. 如何從C#/ .NET中的另一個位圖中減去一個位圖?
- 11. 從兩個表中選擇位置
- 12. 如何在C中實現位集合
- 13. 從R中的4位或6位數中選擇兩位數
- 14. MySQL的選擇僅基於在字符串中的第一個值的位置佔位符選擇/過濾器
- 15. 如何從兩個類中選擇一個條件在C++中?
- 16. 吳選擇Ng選擇從第一個選擇框中選擇下一個值
- 17. 在excel中選擇一個列,但從所需的位置
- 18. 如何添加一個選擇到ZF2中的哪個位置? !
- 19. 選擇下一個位置
- 20. 如何在VB.NET中將16位值分成兩個8位值?
- 21. double如何在C++中以8個字節存儲1024位?
- 22. IPC鍵選擇從st_dev 8位和st_ino中
- 23. 如何找到C中第一個不同的位?
- 24. 選擇:中位數
- 25. jQuery:如何在第一個選擇中基於類選擇另一個選項
- 26. 如何根據位的位置隨機選擇一個值
- 27. 在第三個DataGridView中選擇時,如何在2個DataGridView中選擇一行?
- 28. 選擇<a>標記其中<input>位於jQuery中
- 29. 第一個CPU是8位還是4位?
- 30. 從div中選擇第一個img
你想文本表示(' 「01001101」'),或在單'char'可變的二進制表示? –
'std :: bitset'實現通常的二元運算符'>>','&'等,所以你可以使用它們來提取你想要的位。 –
試試'static_cast(mybitset.to_ulong()&0xff)'。 –