96

unsignedキーワードはデフォルトでC++の特定のデータ型になりますか?プロトタイプのクラスの関数を作成しようとしています。

unsigned Rotate(unsigned object, int count)

しかし、私は本当に何unsignedを意味するのかわかりません。それは何かのようなものではunsigned intないでしょうか?

4

5 に答える 5

100

上記のリンクから:

これらのタイプのいくつかは、signed、unsigned、short、およびlongというキーワードを使用して変更できます。これらの型修飾子の1つが単独で使用される場合、intのデータ型が想定されます

これは、作成者がintを使用していると想定できることを意味します。

于 2010-01-20T08:14:20.943 に答える
48

整数型:

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
于 2010-01-20T08:14:40.537 に答える
23

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;
于 2010-01-20T08:12:31.733 に答える
11

キーワードunsignedについては、C++リファレンスで読むことができます。

この問題には、署名付きと署名なしの2つの異なるタイプがあります。整数のデフォルトは符号付きです。つまり、負の値を持つことができます。

32ビットシステムでは、整数は32ビットです。これは、最大40億の値を含めることができることを意味します。

そしてそれが署名されたとき、これはあなたがそれを分割する必要があることを意味し、-20億から+20億を残します。

ただし、符号なしの場合、値に負の数を含めることはできないため、整数の場合、これは0〜+40億を意味します。

ウィキペディアには、これについてもう少し情報があります。

于 2010-01-20T08:09:23.690 に答える
3

はい、それは意味しunsigned intます。以前は、Cでデータ型を指定しなかった場合、それが想定された場所がたくさんありましたint。これは、たとえば、関数の戻り型の試行でした。

この疣贅はほとんど根絶されましたが、ここで最後の痕跡に遭遇しています。unsigned int私見ですが、あなたが経験しているような混乱を避けるために、コードを修正する必要があります。

于 2010-01-20T08:17:32.640 に答える