web-dev-qa-db-fra.com

Différence entre 0x0A et 0x0D

J'étudiais le bluetooth et j'essayais d'écrire le code pour continuer à écouter le flux d'entrée pendant la connexion et je suis tombé sur l'extrait de code suivant:

int data = mmInStream.read();
   if(data == 0x0A) { 
                } else if(data == 0x0D) {
                    buffer = new byte[arr_byte.size()];
                    for(int i = 0 ; i < arr_byte.size() ; i++) {
                        buffer[i] = arr_byte.get(i).byteValue();
                    }
                    // Send the obtained bytes to the UI Activity
                    mHandler.obtainMessage(BluetoothState.MESSAGE_READ
                            , buffer.length, -1, buffer).sendToTarget();
                    arr_byte = new ArrayList<Integer>();
                } else {
                    arr_byte.add(data);
                }

Quelqu'un peut-il expliquer quelle est la différence entre 0x0A et 0x0D. Et donnez également une brève explication sur ce code. Veuillez partager vos opinions.

7
Rasik Suhail

Les valeurs commençant par 0x sont des hexadécimaux. 0x0A est \n caractère de nouvelle ligne et 0x0D est \r retourne le caractère. Vous pouvez en savoir plus sur la façon de les convertir ici , ou utiliser le tableau de conversion

Le code exécute essentiellement différents blocs de logique en fonction de la valeur de data qui est lue à partir de mmInStream

Brièvement:

  • lorsque le data est 0x0A, le caractère de nouvelle ligne \n, il est ignoré et n'est pas ajouté au arr_byte
  • lorsque le data est 0x0D, le caractère de retour \r, il construit un tampon à partir de arr_byte et envoyer le tampon à l'activité de l'interface utilisateur
  • lorsque data est un autre caractère, il est ajouté à arr_byte

J'espère que cela t'aides.

15
Ling Zhong