gpt4 book ai didi

java - 我可以将 0 移到开头吗?

转载 作者:行者123 更新时间:2023-11-29 03:01:11 25 4
gpt4 key购买 nike

我正在尝试学习位移/掩码。这是我的代码:

    int health = 511; // max 512, 9 bits
int aimAngle = 510; // max 512, 9 bits
int test = 511; // max 512, 9 bits
boolean bool = false; // max 1, 1 bit
int packed;
packed = health | aimAngle << 9 | test << 18 | (bool?1:0) << 19;
Debug.log("health: " + ((packed ) & 0b111111111));
Debug.log("aimAngle: " + ((packed >> 9) & 0b111111111));
Debug.log("test: " + ((packed >> 18) & 0b111111111));
Debug.log("bool: " + ((packed >> 19) & 0b1));

除了 boolean 值之外,我得到的所有值都是正确的。总是1。有什么问题吗?我不能将零移到开头吗?

最佳答案

test 最多九位长。你将它右移 18 个位置。因此它占用位 18 到 27。你需要将 bool 移到 28 位来避免它,而不是放置 19。

packed的第19位是test的第2位,为1。

关于java - 我可以将 0 移到开头吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34814850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com