Java 我需要别人帮我做一些小动作
我喜欢看到人们写一些无聊的代码,但我一点也不懂。经历了黑客的喜悦和痛苦,但我什么都不懂 例如: How comeJava 我需要别人帮我做一些小动作,java,bit-manipulation,bit,Java,Bit Manipulation,Bit,我喜欢看到人们写一些无聊的代码,但我一点也不懂。经历了黑客的喜悦和痛苦,但我什么都不懂 例如: How come1 | 2返回3或How comea^=b;b^=a;a^=b交换值等 一种方法: private T[] ensureCapacity(int minCapacity) { if (tmp.length < minCapacity) { // Compute smallest power of 2 > minCapacity newSize |= new
1 | 2
返回3
或How comea^=b;b^=a;a^=b代码>交换值等
一种方法:
private T[] ensureCapacity(int minCapacity) {
if (tmp.length < minCapacity) {
// Compute smallest power of 2 > minCapacity
newSize |= newSize >> 1;
int newSize = minCapacity;
newSize |= newSize >> 2;
newSize |= newSize >> 4;
newSize |= newSize >> 8;
newSize |= newSize >> 16;
newSize++;
if (newSize < 0) // Not bloody likely!
newSize = minCapacity;
else
newSize = Math.min(newSize, a.length >>> 1);
@SuppressWarnings({"unchecked", "UnnecessaryLocalVariable"})
T[] newArray = (T[]) new Object[newSize];
tmp = newArray;
}
return tmp;
}
或
最好使用>
或>
运算符我的意思是在Joshua Bloch修复了损坏的二进制搜索后,我知道使用>>
而不是>
是安全的。请帮助,如果有一个教程,那么上述来源,我将非常感谢
计算位输出的最简单方法是什么,例如1 | 2=3
我的意思是,我不知道比特形式是什么样子,除非我用计算器什么的。。在没有任何帮助的情况下,有没有最简单的方法来计算这些东西
计算位输出的最简单方法是什么,例如1 | 2=3
把数字写成二进制。这就是数字的真实表示方式
00000001
| 00000010
= 00000011
你需要学习一点,但这里有一个小备忘,可以知道二进制形式的数字
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1
如果需要3,请从左向右填充包含创建数字3所需值的空格
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1
X X
2+1=3,因此将标有X
的替换为1
s,其余替换为0
s
00000011
数字2也一样:
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1
X
二进制结果是
00000010
关于47号:
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1
X X X X X
二进制结果:
00101111
这不是规则、公式或任何东西。它只是帮助你更快地转换数字,并在你的头脑中练习。如果你想玩比特游戏,你还需要学习很多:-)地震平方根算法怎么样?这对于玩游戏或玩小游戏来说是可靠的吗?@huseyintugrulbuyukisik我想你的意思是,我相信它对游戏来说已经足够好了。考虑到所有其他不现实的事情,我怀疑这没有什么区别。@huseyintugrulbuyukisik不,不是地震平方根算法,我在寻找基础,不是进步。。谢谢……)简而言之,它工作的原因是因为数字的开始是一个指数,一个数字的对数的sqrt被2除(或移位1),这形成了sqrt的牛顿近似的开始近似。如果你做了第二次迭代,结果会更准确(但速度会慢)。你似乎在要求一个教程或什么,而不是一个特定问题的解决方案。您将在这里获得一些信息,但要获得更完整的软件包,请尝试《计算机编程艺术》第7.1.3章和《黑客的喜悦》。@askewchan我发现上面的解释非常有用。我想知道的一件事是,还有没有比这更简单或更高级的高级技巧,我会努力阅读并努力提高我的技能。。谢谢……:)
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1
X X X X X
00101111