[解決済み] std::numeric_limits<unsigned char>のメンバーを呼び出す前に単項の "+"を付けるのは何のためですか?
2022-07-08 12:37:57
質問
私は
のドキュメントで、この例は
std::numeric_limits
#include <limits>
#include <iostream>
int main()
{
std::cout << "type\tlowest()\tmin()\t\tmax()\n\n";
std::cout << "uchar\t"
<< +std::numeric_limits<unsigned char>::lowest() << '\t' << '\t'
<< +std::numeric_limits<unsigned char>::min() << '\t' << '\t'
<< +std::numeric_limits<unsigned char>::max() << '\n';
std::cout << "int\t"
<< std::numeric_limits<int>::lowest() << '\t'
<< std::numeric_limits<int>::min() << '\t'
<< std::numeric_limits<int>::max() << '\n';
std::cout << "float\t"
<< std::numeric_limits<float>::lowest() << '\t'
<< std::numeric_limits<float>::min() << '\t'
<< std::numeric_limits<float>::max() << '\n';
std::cout << "double\t"
<< std::numeric_limits<double>::lowest() << '\t'
<< std::numeric_limits<double>::min() << '\t'
<< std::numeric_limits<double>::max() << '\n';
}
の"+"演算子がよくわからないのですが。
<< +std::numeric_limits<unsigned char>::lowest()
試しに、"-"に置き換えてみましたが、これもうまくいきました。 このような"+"演算子の使い道は何でしょうか?
どのように解決するのですか?
出力演算子
<<
を渡されたとき
char
(符号付きでも符号なしでも) が渡されると、それを
文字
.
これらの関数は
unsigned char
. そして上で述べたように、それはそれらの値が整数値ではなく、現在のエンコーディングで表す文字を表示します。
は
+
演算子は
unsigned char
に変換します。
int
を通して
整数プロモーション
. つまり、整数値が代わりに表示されることになります。
のような式は
+std::numeric_limits<unsigned char>::lowest()
とは本質的に同じです。
static_cast<int>(std::numeric_limits<unsigned char>::lowest())
.
関連
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み] 警告:暗黙の定数変換でのオーバーフロー
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] std::vectorをハードコードされた要素で初期化する最も簡単な方法は何ですか?
-
[解決済み] char s[]とchar *sの違いは何ですか?
-
[解決済み] unsigned charとは何ですか?
-
[解決済み】std::launderの目的は何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】coutはstdのメンバではない
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較
-
[解決済み] 警告:暗黙の定数変換でのオーバーフロー
-
[解決済み] uint8_t は cout で出力できません。