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;
short
とlong
は型修飾子でもあります。あなたが書くならばshort s
、それは実際に意味するのshort int s
と同じようunsigned u
に、実際にはを意味しunsigned int u
ます。(およびunsigned short
意味unsigned short int
)
C ++リファレンスでunsignedというキーワードについて読むことができます。
この問題には、署名付きと署名なしの2つの異なるタイプがあります。整数のデフォルトは符号付きです。つまり、負の値を持つことができます。
32ビットシステムでは、整数は32ビットです。これは、最大40億の値を含めることができることを意味します。
そしてそれが署名されたとき、これはあなたがそれを分割する必要があることを意味し、-20億から+20億を残します。
ただし、符号なしの場合、値に負の数を含めることはできないため、整数の場合、これは0〜 +40億を意味します。
ウィキペディアには、これに関する情報がもう少しあります。