以下に示すように、stoi を使用して C++ で符号付き 2 進数の文字列を 10 進数値に変換しようとしています。
stoi( binaryString, nullptr, 2 );
私の入力は 2s 形式のバイナリ文字列で、桁数が 8 である限り、stoi は正常に機能します。たとえば、「1100」は 12 という結果になります。
ただし、4 ビット システムの場合、2s 形式の 1100 は -4 に等しくなります。C ++で任意のビット長2の数値に対してこの種の変換を行う方法の手がかりはありますか?