16ビットのstd :: stringを、文字列の正確なバイナリ番号を保持できるintに変換する際に問題があります。私は、税引後営業利益およびビットセットをいじりてきたが、彼らはdeciamlsまたは先頭のゼロを脱いで変換し、このバイナリ表現のバイナリstd :: stringをintに変換する
std::string str = "0011101100010101";
int num = 0;
.
.
.
num = 0011101100010101 // now equals
16ビットのstd :: stringを、文字列の正確なバイナリ番号を保持できるintに変換する際に問題があります。私は、税引後営業利益およびビットセットをいじりてきたが、彼らはdeciamlsまたは先頭のゼロを脱いで変換し、このバイナリ表現のバイナリstd :: stringをintに変換する
std::string str = "0011101100010101";
int num = 0;
.
.
.
num = 0011101100010101 // now equals
使用STDを行う方法がある::ビットセット
std::string str = "0011101100010101";
auto number = static_cast<uint16_t>(std::bitset<16>{ str }.to_ulong());
またはリテラルを使用しますあなたは文字列を必要としない場合
uint16_t b = 0b0011101100010101;
ちょうど 'のstd ::の – Slava
可能な重複bitset' [Cで、intにバイナリ形式の文字列を変換](https://stackoverflow.com/questions/2343099/を使用convert-binary-format-string-to-i nt-in-c) – NineBerry
@NineBerry in C++では、明示的にループを書くよりはるかに簡単に行うことができます – Slava