[Java] Afficher la chaîne de bits stockée dans la variable de type d'octet sur la console

Chaîne de bits stockée dans l'octet

Le type Java byte stocke 8 bits (= 1 octet) de données. La chaîne de bits (nombre binaire) stockée dans «byte» est exprimée en hexadécimal et en décimal comme suit.

Chaîne de bits(Nombre binaire) Hexadécimal Nombre décimal
00000000 00 0
01111111 7F 127
10000000 80 -128
11111111 FF -1

Afficher la chaîne de bits sur la console

Explique comment afficher en notation binaire et comment afficher en notation hexadécimale.

1:  byte b = 10;
2:  int i = Byte.toUnsignedInt(b); //Conversion non signée
3:  String str = Integer.toBinaryString(i); //Obtenir une chaîne binaire
4:  str = String.format("%8s", str).replace(' ', '0'); //0 rembourrage
5:  System.out.println(str);
1:  byte b = 10;
2:  System.out.print(String.format("%02X", b));

Les résultats de sortie de chacun sont les suivants.

Nombre binaire: 00001010
Hexagone: 0A

Si vous comparez les méthodes de sortie, vous pouvez voir que la notation binaire nécessite diverses conversions.

Quel type de conversion est effectué en notation binaire?

Je vais expliquer quel type de conversion est effectué en notation binaire. Premier à partir de la deuxième ligne.

2ème ligne: Convertir du type byte en type int

2:  int i = Byte.toUnsignedInt(b); //Conversion non signée

À ce stade, le fait est que la conversion non signée est effectuée. La raison en est que les 24 bits supérieurs du type int sont mis à 0.

type d'octet(entier) type int<Conversion non signée>(entier) type int<Conversion signée>(entier)
00000001(1) 00000000000000000000000000000001(1) 00000000000000000000000000000001(1)
11111111(-1) 00000000000000000000000011111111(255) 11111111111111111111111111111111(-1)

Ligne 3: Récupère la chaîne binaire (chaîne de bits) de la variable de type ʻint`

3:  String str = Integer.toBinaryString(i); //Obtenir une chaîne binaire

À ce stade, le 0 d'ordre supérieur est ignoré. C'est pourquoi nous faisions des conversions non signées.

type int(entier) Chaîne binaire
00000000000000000000000000000001(1) 1
00000000000000000000000011111111(255) 11111111

4ème ligne: 0 complétant la chaîne de caractères acquise

4:  str = String.format("%8s", str).replace(' ', '0'); //0 rembourrage

Plus précisément, après le remplissage avec des espaces en utilisant une chaîne formatée, les espaces sont «remplacés» par «0».

Résumé

Quand je vérifiais le fonctionnement du programme, j'ai soudainement voulu vérifier le contenu de byte [], et quand j'ai cherché une méthode, je me suis débattu de manière inattendue, j'ai donc laissé un mémo sur la façon de la réaliser. C'est une petite histoire, mais j'espère que cela aide quelqu'un.

Recommended Posts

[Java] Afficher la chaîne de bits stockée dans la variable de type d'octet sur la console
J'ai essayé d'afficher le calendrier sur la console Eclipse en utilisant Java.
Concernant la comparaison d'équivalence de type de chaîne en Java
Remarques sur les opérateurs utilisant Java ~ Type chaîne ~
Exécutez le code Java stocké dans le presse-papiers.
Entrée de la console en Java (comprendre le mécanisme)
L'histoire de la comparaison de chaînes de bas niveau en Java
Le type d'intersection introduit dans Java 10 est incroyable (?)
À propos de var utilisé en Java (type de variable locale)
Mémo organisé dans la tête (Java - type de données)
Afficher "Hello World" dans le navigateur à l'aide de Java
Afficher "Hello World" dans le navigateur à l'aide de Java
Afficher la liste en setDétails à l'écran avec ressort-sécurité
Détermination de type en Java
Types de variables dans ruby
Utilisez JLine lorsque vous souhaitez gérer les frappes sur la console caractère par caractère en Java
Faisons une application de calcul avec Java ~ Afficher la fenêtre de l'application
[Ruby on Rails] Afficher rapidement le titre de la page dans le navigateur
Convertir un tableau d'octets Java en une chaîne hexadécimale
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
Comment changer Java à l'ère d'OpenJDK sur Mac
[Rails] Comment afficher les informations stockées dans la base de données dans la vue
Réflexion sur la manipulation de chaînes Java
Essayez le type fonctionnel en Java! ①
Entrée dans la console Java
J'ai fait un "Sunshine Ikezaki game" que j'ai vu sur Twitter en Java.
[Android / Java] Comprendre le type de description dans les paramètres d'écoute (installation du bouton)
Afficher les caractères définis par l'utilisateur sur l'écran LCD I2C 1602 avec Raspberry Pi 3 et Java
Créons une application TODO en Java 5 Changer l'affichage de TODO
[Java] Comment convertir du type String en type Path et obtenir le chemin