我正在尝试将字母序列分配给位掩码数值,如此
1: a
2: b
4: c
8: d
.....
2^25: z
我正在寻找一个可以帮助我推断转换的函数,当我选择c和d时,它应该返回一个12的数字,即4 + 8。
我写了一个函数,虽然从这个值中推断出了这个字母,但我现在需要反过来,对此有何帮助?我不太确定有点明智的操作
例如,
var Mask = 5;
var String = "";
var index;
for (index = 0; index < 26; index++) {
if (Mask & (1 << index)) {
var letter = String.fromCharCode(65 + index);
String += driveLetter;
}
}
alert(String);
答案 0 :(得分:1)
它非常简单:
var mask = 0;
var string = "cd";
for (var i=0; i<string.length; i++) {
var c = string.charCodeAt(i) - 65;
if (i < 0 || i >= 26) throw new SyntaxError("invalid character: "+string[i]);
mask = mask | (1 << c); // 12
}
console.log(mask);