質問
C ++で特定のデータ型に符号なしのキーワードデフォルトしていますか?私はプロトタイプのためのクラスの関数を記述しようとしています:
unsigned Rotate(unsigned object, int count)
しかし、私は本当に何unsigned
手段得ることはありません。それはunsigned int
か何かのようにするべきではないでしょうか。
解決
上記のリンクするから:
これらのタイプのいくつかは、長い、短い、符号なしの、署名されたキーワードを使用して変更することができ。これらのタイプの修飾子の一方が単独で使用される場合、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
C ++
のデータ型に符号なしのキーワードデフォルトをい
はい、符号付きおよび符号なしのスタンドアローン型としても使用することができる指定子
の整数データ型のchar、短い、長い整数のいずれかで表されるために必要な数値の範囲に応じて、符号付きまたは符号なしすることができます。 unsigned型のみ正の値(ゼロ)を表すことができ、一方、署名されたタイプは、正と負の両方の値を表すことができます。
は、n個のビットを含む符号なし整数0と2の間の値を持つことができ、 N - 1 (これは、2 N 異なる値である)。
はしかし、符号付きおよび符号なしは、それぞれ符号付き整数とunsigned int型と同じ意味、スタンドアロン型指定子としても使用することができます。以下の2つの宣言は等価です:
unsigned NextYear;
unsigned int NextYear;
あなたはC ++リファレンスの中でキーワード符号なしについて読むことができます。
この問題に2つの異なる種類、署名および非署名があります。整数のデフォルトは、それらが負の値を持つことができることを意味署名されます。
32ビットシステムで整数は、〜40億の値を含むことができることを意味し、32ビットである。
そして、それが署名されたとき、あなたはそれを分割する必要があり、この手段、残し-2000000000に20億ます。
それが署名された場合しかし、値が の任意の負の数を含めることはできませんが、その整数のためにこれは40億に0を意味します。
ウィキペディアの上でこの試合もう少しinformationaがあります。
はい、それはunsigned int
を意味します。それはあなたがCのデータ型を指定しなかった場合、それだけでint
を想定し、多くの場所があったことにするために使用しました。これは、関数の戻り値の型を、例えば、試しました。
このいぼは、ほとんどが根絶されていますが、あなたはここでその最後の名残が発生しています。私見では、コードは、あなたが経験している混乱のちょうどソートを避けるためにunsigned int
を言うために修正する必要があります。