How to divide 8 bit binary into two 4 bit?
13 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
sami ullah
am 24 Okt. 2020
Kommentiert: Walter Roberson
am 20 Apr. 2023
For example A=11001111,
i want to break it as A1=1100 and A2=1111.
How it can be done in matlab?
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (1)
Xavier
am 20 Apr. 2023
Bearbeitet: Xavier
am 20 Apr. 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 Kommentar
Walter Roberson
am 20 Apr. 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)]
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!