Java 将3整数压缩为一个短整数
所以我得到了3个int,其中2个是从0到15(x和z),1(y)是从0到255。我一直在尝试用位移位来处理这样的事情Java 将3整数压缩为一个短整数,java,Java,所以我得到了3个int,其中2个是从0到15(x和z),1(y)是从0到255。我一直在尝试用位移位来处理这样的事情 compressed = (short) (x>>12|y>>8|z); 但它只得到z值 正确的方法是什么您正在改变错误的方向: compressed = (short) ((x<<12) | (y<<4) | z); compressed=(short)((x您需要使用另一个方向的移位,使用括号,因为移位的优先级较低 comp
compressed = (short) (x>>12|y>>8|z);
但它只得到z值
正确的方法是什么您正在改变错误的方向:
compressed = (short) ((x<<12) | (y<<4) | z);
compressed=(short)((x您需要使用另一个方向的移位,使用括号,因为移位的优先级较低
compressed = (short) ((x << 12) | (y << 8) | z);
compressed=(short)((x btw|
的优先级高于我试过用这个测试它,但它总是得到重复的x=0;y=0;z=0;而(xI我很确定它应该是(x)你也是对的。已编辑。我想我被名称弄糊涂了。虽然整数类型中的位字段允许紧凑存储,但它们会增加代码的复杂性,使代码脆弱且难以维护。如果数据模型允许,你应该尽可能使用离散整数类型而不是位字段。