Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Consider the following code:
let mask = !(0xF0 >> (pos % 2));
In this code,
0xF0
represents the binary value0b11110000
. Whenpos
is even,(pos % 2)
equals0
. Therefore, the right shift operation on0b11110000
by0
does not change the value, resulting inmask = 0b00001111
.However, when
pos
is odd,(pos % 2)
equals1
. In this case, the right shift operation on0b11110000
by1
results in0b01111000
, which is incorrect.To fix this issue, modify the code to
let mask = !(0xF0 >> (pos % 2) * 4);
.With this modification, when
pos
is even,(pos % 2)
equals0
, and the right shift operation by0 * 4 = 0
does not change the value, resulting inmask = 0b00001111
.Similarly, when
pos
is odd,(pos % 2)
equals1
, and the right shift operation by1 * 4 = 4
correctly results in0b00001111
, givingmask = 0b11110000
.