我试图通过位掩码将四个独立的 5 位值 (0-31) 存储在 32 位 int 内,但无法正确设置这些值,并从用于存储的掩码 int 中获取各个值。
谁能帮我这个?
编辑:
抱歉外部链接 - 这里有一些 JavaScript 演示了我想要实现的目标(但使用位掩码而不是十进制代数):
var s = 0;
var v = [31, 6, 23, 31];
//save values
s = v[0] + (v[1] * 32) + (v[2] * 1024) + (v[3] * 32768);
console.log(s);
//retrieve values
v[3] = parseInt(s / 32768);
v[2] = parseInt((s - (v[3] * 32768)) / 1024);
v[1] = parseInt((s - ((v[3] * 32768) + (v[2] * 1024))) / 32);
v[0] = parseInt(s - …Run Code Online (Sandbox Code Playgroud)