我想在大整数中找到一个字节的值。例如数字
11973777 = 10110110 10110100 10010001
我想找到那个
11973777[2] = 10110110 = 182
11973777[1] = 10110100 = 180
11973777[0] = 10010001 = 145
并且有效地执行(按位操作)。我可以通过按位运算在数字的任何位置轻松找到一个位的值,但我不想这样做8次只是为了得到字节,或者向左移位然后向右移位。这被标记为javascript,因为我在javascript中这样做,但我想可以翻译按位操作。提前感谢您提供的任何帮助。
答案 0 :(得分:2)
在某种程度上,你必须按位移动:
var num = 11973777;
var lastByte = num & 0xFF;
var midLowByte = (num >> 8) & 0xFF;
var midHighByte = (num >> 16) & 0xFF;
var highByte = (num >> 24) & 0xFF;
但是你总是可以将逻辑封装在函数中以使其更方便,例如:
window.getBytes = function(num) {
return [num & 0xFF, (num >> 8) & 0xFF, (num >> 16) & 0xFF, (num >> 24) & 0xFF];
};
var numBytes = getBytes(11973777);
alert(numBytes[0] + "," + numBytes[1] + "," + numBytes[2] + "," + numBytes[3]);