[解決済み】CやC++でバイナリ・リテラルを使うことはできますか?
2022-04-08 14:28:40
質問
2進数の演算が必要です。
書いてみた。
const x = 00010000;
しかし、うまくいかなかった。
と同じ値を持つ16進数を使えばいいことは知っています。
00010000
しかし、C++に2進数の型があるかどうか、また、ない場合、私の問題に対する他の解決策があるかどうか知りたいのです。
どのように解決するのですか?
あなたは
使用
BOOST_BINARY
C++0xを待っている間 :)
BOOST_BINARY
テンプレート実装の利点は、間違いなく
C言語プログラムでも使用可能
(100%プリプロセッサ駆動です)。
逆のこと(つまり、数値を2進数で出力する)を行うには、非移植型の
itoa
機能
または
を実装してください。
.
残念ながら、STLストリームでbase2フォーマットを行うことはできません(
setbase
は8,10,16の塩基にしか対応しませんが
できる
のどちらかを使用します。
std::string
のバージョンです。
itoa
または、(より簡潔ではあるが、わずかに効率は悪い)。
std::bitset
.
#include <boost/utility/binary.hpp>
#include <stdio.h>
#include <stdlib.h>
#include <bitset>
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
unsigned short b = BOOST_BINARY( 10010 );
char buf[sizeof(b)*8+1];
printf("hex: %04x, dec: %u, oct: %06o, bin: %16s\n", b, b, b, itoa(b, buf, 2));
cout << setfill('0') <<
"hex: " << hex << setw(4) << b << ", " <<
"dec: " << dec << b << ", " <<
"oct: " << oct << setw(6) << b << ", " <<
"bin: " << bitset< 16 >(b) << endl;
return 0;
}
を生成します。
hex: 0012, dec: 18, oct: 000022, bin: 10010
hex: 0012, dec: 18, oct: 000022, bin: 0000000000010010
また、ハーブ・サッターの マナーファームのストリングフォーマー を使うと、面白い議論ができる。
関連
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み] 文字列リテラルの前にある'b'文字は何を意味するのでしょうか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] Linux上で動作するC++コードのプロファイリングを行うにはどうすればよいですか?
-
[解決済み] C++11の'typedef'と'using'の違いは何ですか?
-
[解決済み] 配列のすべてのメンバーを同じ値で初期化するには?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】高放射能環境下で使用するアプリケーションのコンパイルについて
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】数値を2進数で表示(coutを使用)するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み】LLVMで暗黙のうちに削除されたコピーコンストラクタの呼び出し
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み] Cコードで2進法を書く [重複]。