2016-11-30 12 views
1

これは私が欲しいものです:JavaScriptでunsigned int変数を宣言するにはどうすればいいですか?

>> var uint n = 0; 
<- undefined (output by firefox dev console, I don't know what this means) 
>> n; 
<- 0; 
>> n - 1; 
<- 4294967295 (2^32-1) 

それは符号なしであるように、JavaScriptでは、変数を宣言するために、どのように? ありがとうございます。

+0

JavaScriptで組み込みの符号なし整数型がありません。私は型付きのArrayBuffer(Uint32Array)を使うことができると思います。 – Thilo

答えて

1

実際に署名が必要な場合は、Uint32Array on MDNをチェックしてください。

しかし、実際に値を符号なしで取得することはないので、単純なモジュラス演算が有効でしょうか?

//Create var as array of length 1 
 
var arr = new Uint32Array(1); 
 
//set first value to 1 
 
arr[0] = 1; 
 
//output contents 
 
console.log(arr); 
 
//substract to "negative" 
 
arr[0] -= 2; 
 
//output contents 
 
console.log(arr);

//Object with setter, to make it simpler 
 
var my_obj = Object.create({ 
 
    //This is our value 
 
    value: 0 
 
}, { 
 
    //This is our setter 
 
    set: { 
 
    value: function(a) { 
 
     //Make incoming value a modulus of some integer 
 
     //I just use 1000 for the example 
 
     var max = 1000; 
 
     a = a % max; 
 
     //Force a positive 
 
     while (a < 0) { 
 
     a += max; 
 
     } 
 
     //Set value 
 
     this.value = a; 
 
     //Return object regerence for chaining 
 
     return this; 
 
    } 
 
    } 
 
}); 
 
console.log("0:", my_obj.value); 
 
my_obj.set(500); 
 
console.log("500:", my_obj.value); 
 
my_obj.set(-0); 
 
console.log("-0:", my_obj.value); 
 
my_obj.set(-1); 
 
console.log("-1:", my_obj.value); 
 
my_obj.set(-100); 
 
console.log("-100:", my_obj.value); 
 
my_obj.set(-0); 
 
console.log("-0:", my_obj.value);

や機能を持つモジュラス:

function modulusMax(value, a) { 
 
    //Make incoming value a modulus of some integer 
 
    //I just use 1000 for the example 
 
    var max = 1000; 
 
    a = a % max; 
 
    //Force a positive 
 
    while (a < 0) { 
 
    a += max; 
 
    } 
 
    //Set value 
 
    value = a; 
 
    //Return object regerence for chaining 
 
    return value; 
 
} 
 

 
var v = 0; 
 

 
console.log("0:", modulusMax(v, 0)); 
 
console.log("500:", modulusMax(v, 500)); 
 
console.log("-0:", modulusMax(v, -0)); 
 
console.log("-1:", modulusMax(v, -1)); 
 
console.log("-100:", modulusMax(v, -100)); 
 
console.log("1100:", modulusMax(v, 1100)); 
 
console.log("-0:", modulusMax(v, -0));

+0

これは簡単なモジュラス演算でどのように機能しますか?私は正の数だけが欲しい。 –

関連する問題