A-M baby
This commit is contained in:
parent
764da6cbbb
commit
db842d013d
19005 changed files with 197040 additions and 7 deletions
12
Task/Gray-code/Java/gray-code-2.java
Normal file
12
Task/Gray-code/Java/gray-code-2.java
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
public static long grayEncode(long n){
|
||||
long result = 0;
|
||||
for(int exp = 0; n > 0; n /= 2, exp++){
|
||||
long nextHighestBit = (n >> 1) & 1;
|
||||
if(nextHighestBit == 1){
|
||||
result += ((n & 1) == 0) ? (1 << exp) : 0; //flip the bit
|
||||
}else{
|
||||
result += (n & 1) * (1 << exp); //"n & 1" is "this bit", don't flip it
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue