【问题标题】:Binary data handling and bitwise AND二进制数据处理和按位与
【发布时间】:2011-10-06 05:09:18
【问题描述】:

我看到了这个代码示例,没有任何解释:

var xhr = new XMLHttpRequest();
xhr.open('GET', '/path/to/image.png', true);

// Trick to pass bytes through unprocessed.
xhr.overrideMimeType('text/plain; charset=x-user-defined');

xhr.onreadystatechange = function(e) {
  if (this.readyState == 4 && this.status == 200) {
    var binStr = this.responseText;
    for (var i = 0, len = binStr.length; i < len; ++i) {
      var c = binStr.charCodeAt(i);
      //String.fromCharCode(c & 0xff)
      var byte = c & 0xff;  // byte at offset i
    }
  }
};

xhr.send();

我想知道var byte = c &amp; 0xff; // byte at offset i 这条线在做什么?为什么AND0xFF?如果重要的话,这段代码是用 JavaScript 编写的。

【问题讨论】:

标签: javascript binary bitwise-operators


【解决方案1】:

代码似乎正在存储一个字节值。显然,开发人员认为c 可能包含超过 8 位(一个字节)的数据。通过 ANDing 和 0xff,任何超过 8 位的数据都会被修剪掉(或至少设置为零)。

【讨论】:

  • 嗯,我明白了,是的,现在我明白了。
猜你喜欢
  • 1970-01-01
  • 2017-05-10
  • 1970-01-01
  • 1970-01-01
  • 2011-02-04
  • 2022-10-26
  • 2011-03-04
  • 1970-01-01
  • 2011-08-16
相关资源
最近更新 更多