タグ付けされた質問 「unsigned」

符号なし変数は、負でない数のみを表すことができる変数です。

5
符号付き/符号なしの比較
次のコードが指定された場所で警告を発行しない理由を理解しようとしています。 //from limits.h #define UINT_MAX 0xffffffff /* maximum unsigned int value */ #define INT_MAX 2147483647 /* maximum (signed) int value */ /* = 0x7fffffff */ int a = INT_MAX; //_int64 a = INT_MAX; // makes all warnings go away unsigned int b = UINT_MAX; bool c = false; if(a < …

5
Java8およびJava9で符号なし整数を使用するにはどうすればよいですか?
Oracleの「プリミティブデータ型」ページでは、Java8がunsignedintおよびlongのサポートを追加すると記載されています。 intデフォルトでは、intデータ・タイプは、32ビットの-2最小値を有する2の補数整数、署名され31と2の最大値は31 -1。Java SE 8以降では、intデータ型を使用して、最小値が0、最大値が2 32-1の符号なし32ビット整数を表すことができます。使用Integer使用するクラスをint符号なし整数としてデータ型を。詳細については、「番号クラス」のセクションを参照してください。符号なし整数の算術演算をサポートするためにcompareUnsigned、divideUnsignedなどの静的メソッドがIntegerクラスに追加されました。 long:longデータ型は64ビットの2の補数整数です。署名さはlong-2の最小値を有し、63 2の最大値63を-1。Java SEの8以降では、使用することができlong、符号なし64ビット表現するデータ・タイプをlong0の最小値及び2の最大値を有し、64 -1。intによって提供される値よりも広い値の範囲が必要な場合は、このデータ型を使用します。Longこのクラスはまた、のような方法が含まれcompareUnsigned、divideUnsigned符号なしのための算術演算をサポートするなどlong。 ただし、unsignedlongまたはintegerを宣言する方法が見つかりません。たとえば、次のコードは、範囲内にある必要がある場合(割り当てられた値は正確に2 64 -1)、「リテラルは範囲外です」(もちろんJava 8を使用しています)というコンパイラエラーメッセージを表示します。: public class Foo { static long values = 18446744073709551615L; public static void main(String[] args){ System.out.println(values); } } それで、unsigned intまたはlongを宣言する方法はありますか?
82 java  java-8  unsigned 

6
符号なし変数に負の値を割り当てるとどうなりますか?
符号なし変数に負の値を割り当てるとどうなるか知りたいと思いました。 コードは次のようになります。 unsigned int nVal = 0; nVal = -5; コンパイラエラーは発生しませんでした。私がプログラムを実行したときnVal、奇妙な値が割り当てられました!2の補数の値が割り当てられる可能性がありnValますか?

1
これはstd :: gcdのバグですか?
私はstd::gcd予期しないことに気付いたこの振る舞いに遭遇しました: #include <iostream> #include <numeric> int main() { int a = -120; unsigned b = 10; //both a and b are representable in type C using C = std::common_type<decltype(a), decltype(b)>::type; C ca = std::abs(a); C cb = b; std::cout << a << ' ' << ca << '\n'; std::cout << …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.