unsignedキーワードはデフォルトでC++の特定のデータ型になりますか?プロトタイプのクラスの関数を作成しようとしています。
unsigned Rotate(unsigned object, int count)
しかし、私は本当に何unsigned
を意味するのかわかりません。それは何かのようなものではunsigned int
ないでしょうか?
上記のリンクから:
これらのタイプのいくつかは、signed、unsigned、short、およびlongというキーワードを使用して変更できます。これらの型修飾子の1つが単独で使用される場合、intのデータ型が想定されます
これは、作成者がintを使用していると想定できることを意味します。
整数型:
short -> signed short
signed short
unsigned short
int -> signed int
signed int
unsigned int
signed -> signed int
unsigned -> unsigned int
long -> signed long
signed long
unsigned long
文字に注意してください:
char (is signed or unsigned depending on the implmentation)
signed char
unsigned char
unsignedキーワードはデフォルトでC++のデータ型になりますか
はい、signedおよびunsignedはスタンドアロンの型指定子としても使用できます
整数データ型char、short、long、およびintは、表現する必要のある数値の範囲に応じて、符号付きまたは符号なしのいずれかになります。符号付きタイプは正の値と負の値の両方を表すことができますが、符号なしタイプは正の値(およびゼロ)のみを表すことができます。
nビットを含む符号なし整数は、0〜2 n -1(2 n個の異なる値)の値を持つことができます。
ただし、signedとunsignedは、スタンドアロンの型指定子として使用することもできます。つまり、それぞれsignedintとunsignedintと同じです。次の2つの宣言は同等です。
unsigned NextYear;
unsigned int NextYear;
キーワードunsignedについては、C++リファレンスで読むことができます。
この問題には、署名付きと署名なしの2つの異なるタイプがあります。整数のデフォルトは符号付きです。つまり、負の値を持つことができます。
32ビットシステムでは、整数は32ビットです。これは、最大40億の値を含めることができることを意味します。
そしてそれが署名されたとき、これはあなたがそれを分割する必要があることを意味し、-20億から+20億を残します。
ただし、符号なしの場合、値に負の数を含めることはできないため、整数の場合、これは0〜+40億を意味します。
ウィキペディアには、これについてもう少し情報があります。
はい、それは意味しunsigned int
ます。以前は、Cでデータ型を指定しなかった場合、それが想定された場所がたくさんありましたint
。これは、たとえば、関数の戻り型の試行でした。
この疣贅はほとんど根絶されましたが、ここで最後の痕跡に遭遇しています。unsigned int
私見ですが、あなたが経験しているような混乱を避けるために、コードを修正する必要があります。