2016-07-08 3 views
-1

J'ai entendu ceci est une question posée dans une interview, étant donné deux octets, return true si elles sont symétriquesvérifier si deux octets sont symétriques

public boolean isSym(Byte firstByte, Byte secondByte); 

01101000 et 00010110 sont symétriques, mais 01100000 et 11000000 ne sont pas . besoin d'écrire le code en Java. Des idées quelle est la meilleure façon de le faire?

+0

La mauvaise étiquette, vous avez utilisé javascript, devrait être java – aximus

+0

@aximus déjà fixé. –

+0

Il existe plusieurs façons d'inverser une séquence de bits: https://graphics.stanford.edu/~seander/bithacks.html#BitReverseObvious – khelwood

Répondre

2
public boolean isSym(Byte firstByte, Byte secondByte) 
{ 

    for (int i = 0; i< 8 ; i++){ 
     if (bitAt(firstByte, i) != bitAt(secondByte, 7 - i)) 
      return false; 
    } 

    return true; 
} 

public byte bitAt(byte num, int position) 
{ 
    return (byte)((num >> position) & (byte)1); 
}