How to divide 8 bit binary into two 4 bit?
28 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
sami ullah
le 24 Oct 2020
Commenté : Walter Roberson
le 20 Avr 2023
For example A=11001111,
i want to break it as A1=1100 and A2=1111.
How it can be done in matlab?
0 commentaires
Réponse acceptée
Plus de réponses (1)
Xavier
le 20 Avr 2023
Modifié(e) : Xavier
le 20 Avr 2023
I think it would be more efficient in a bit-wise operation performing the modulus and the division.
Start with an 8-bit binary number. For example, let's use the binary number 11011010. To split this number into two 4-bit groups, we need to find the remainder of the number when divided by 16 (which is 2^4, the number of bits in a 4-bit group).
To do this, we can use the modulus operator (%), which gives us the remainder after division.
So, 11011010 % 16 = 10.
The remainder we obtained in step 2 represents the least significant 4 bits of the original number. To get the most significant 4 bits, we need to divide the original number by 16 and discard the remainder. We can use integer division to do this.
So, 11011010 / 16 = 1101.
We now have two 4-bit groups: 1101 and 1010. The first group (1101) represents the most significant 4 bits of the original number, and the second group (1010) represents the least significant 4 bits.
Therefore, the original 8-bit binary number 11011010 can be split into two 4-bit groups: 1101 and 1010.
1 commentaire
Walter Roberson
le 20 Avr 2023
Note that integer division for this purpose is idivide
If you were to use a uint8() / 16 then the output uint8 would be rounded.
There are other approaches. For example,
A = randi([0 255], 5, 1, 'uint8')
top_bits = bitand(A, 240) / 16
bottom_bits = bitand(A, 15)
%cross check
dec2hex(A, 2) == [dec2hex(top_bits,1), dec2hex(bottom_bits,1)]
Voir également
Catégories
En savoir plus sur Resizing and Reshaping Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!