如何在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 中声明一个变量,使其无符号呢?提前致谢。

原文由 Lukas Kitsche 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 569
2 个回答

如果您真的需要它们未签名,请检查 MDN 上的 Uint32Array

但是,由于您并没有真正从无符号值中获得任何好处,也许简单的模数运算会更好?

 //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));

原文由 Emil S. Jørgensen 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题