[解決済み] 1バイト=8ビットのシステム?重複
質問
いつもこんな文章を読んでいます。
1バイトが8ビットの大きさであることを当てにしてはいけない
使う
CHAR_BIT
ビットとバイトを変換する定数として、8 の代わりに
などなど。これが当てはまる、今日の現実のシステムにはどのようなものがあるのでしょうか? (これに関してCとC++の違いがあるのか、それとも実際には言語にとらわれないものなのか、私にはよくわかりません。必要であれば再タグ付けしてください)。
どのように解決するのですか?
古いマシンでは、8 ビットより小さいコードがかなり一般的でしたが、そのほとんどはもう何年も前に死蔵されています。
C および C++ では
最小
のために 8 ビットの
char
少なくとも C89 標準にさかのぼります。[編集:例えば、C90, §5.2.4.2.1 は、以下のように要求しています。
CHAR_BIT
>= 8 と
UCHAR_MAX
>=255です。C89では、別のセクション番号(I
を信じる
は§2.2.4.2.1)ですが、内容は同じです]。彼らは "char" と "byte" を本質的に同義語として扱っています[Edit: 例えば。
CHAR_BIT
は次のように記述されています: "ビットフィールド (byte) でない最小のオブジェクトのビット数 "]。
しかし、現在のマシン (ほとんどが DSP) では、最小の型が 8 ビットより大きく、最低でも 12 ビット、14 ビット、あるいは 16 ビットがかなり一般的になっています。Windows CE もほぼ同じで、その最小の型は (少なくとも Microsoft のコンパイラーでは) 16 ビットです。これらは
ではありません。
しかし
char
という名前の型をサポートしないという (非適合) 方法をとっています。
char
という名前の型をサポートしないという (不適合な) 方法をとっています。
関連
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較
-
[解決済み] 警告:暗黙の定数変換でのオーバーフロー
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] template "と "typename "キーワードはどこに、なぜ入れなければならないのですか?
-
[解決済み] 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++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み】「Expected '(' for function-style cast or type construction」エラーの意味とは?
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み] 解決済み] `pthread_create' への未定義の参照 [重複] [重複
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み] 8bit char以外を搭載しているプラットフォームは?