Question

Je fais une classe PackEdunSigned1616 qui stocke deux shorts non signés en un INT, et une classe PackEdSigned1616 qui stocke deux shorts signés en un INT. J'ai lu des opérations bitwise, mais je suis toujours confondue sur la façon de gérer avec signé et non signé et des valeurs qui sont plus grandes ou plus petites que la gamme d'un court-circuit (elles sont passées sous forme de deux INT). Voici ce que j'ai jusqu'à présent:

public final class PackedUnsigned1616 {
public final int field;

private static final int RIGHT = (2 << 15) - 1;
private static final int LEFT = ((2 << 31) - 1) ^ RIGHT;

public PackedUnsigned1616(int left, int right) {
    field = (left << 15) | (right & RIGHT);
}

public int getLeft() {
    return field >> 15;
}
public int getRight() {
    return field & RIGHT;
}

}

Tout ce concept me confond beaucoup, donc si vous pouviez faire un peu de lumière dessus, cela aiderait énormément.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top