MHB Bit Masking: How to Manipulate Bits in Binary Numbers

  • Thread starter Thread starter gEOdude
  • Start date Start date
  • Tags Tags
    Bit Operations
AI Thread Summary
The discussion revolves around bit masking techniques using the 8-bit binary number "1001 1101." The first task involves turning off the two bits on each side while leaving the middle four bits unchanged, resulting in the output "0001 1100." The correct mask for this operation is "0011 1100," which is applied using the AND operator. The second task requires toggling the middle four bits, with the expected output being "1010 0001." This is achieved using the XOR operator with the mask "0011 1100." A point of confusion arises regarding the description of the bits, with clarification that the two bits on each side refer to the left and right ends of the 8-bit number. The discussion concludes with an acknowledgment of the misunderstanding regarding the bit count.
gEOdude
Messages
25
Reaction score
0
Hey Guys, can i have a hand with this question. I just want to know if what I did was right.

Bit masking has a task. They are used in order to access specific bits in a byte of data.

1) Using the 8-bit binary number “1001 1101”:
Turn off the 2 bits (masking bits to 0) on each side, and then leave the middle 4 alone.The output should be achieved should be "0001 1100”.

2) Using the 8-bit binary number “1001 1101”:
Toggle the values of the middle 4 bits (the opposite of what it currently is), and leave the 2 bits on each side untouched.The output achieved should be"10100001”.
Answer
1) (1001 1101) & (0101 1110) = 0001 1100
2) (1001 1101) ^ (0111 1110) = 1010 0001
 
Technology news on Phys.org
HELPMEHELPME said:
1) Using the 8-bit binary number “1001 1101”:
Turn off the 2 bits (masking bits to 0) on each side, and then leave the middle 4
alone.

HELPMEHELPME said:
Toggle the values of the middle 4 bits (the opposite of what it currently is), and leave the 2 bits on each side untouched.
Why do these quotes talk about the middle 4 bits and the 2 bits on each side, that is, 6 bits in total, when the input number consists of 8 bits?
 
Im not sure, its how my teacher wrote the problem. Is there something wrong with it?
 
HELPMEHELPME said:
Bit masking has a task. They are used in order to access specific bits in a byte of data.

1) Using the 8-bit binary number “1001 1101”:
Turn off the 2 bits (masking bits to 0) on each side, and then leave the middle 4 alone.The output should be achieved should be "0001 1100”.

The mask that masks out 2 bits on each side is [m]0011 1100[/m].
Using this mask we can do:
1001 1101 & [m]0011 1100[/m] = 0001 1100

2) Using the 8-bit binary number “1001 1101”:
Toggle the values of the middle 4 bits (the opposite of what it currently is), and leave the 2 bits on each side untouched.The output achieved should be"10100001”.

Using the same mask:
1001 1101 ^ [m]0011 1100[/m] = 1010 0001
Answer
2) (1001 1101) ^ (0111 1110) = 1010 0001

I'm afraid the xor operator is not evaluated properly here. (Worried)

Evgeny.Makarov said:
Why do these quotes talk about the middle 4 bits and the 2 bits on each side, that is, 6 bits in total, when the input number consists of 8 bits?
HELPMEHELPME said:
Im not sure, its how my teacher wrote the problem. Is there something wrong with it?
No.
2 bits on each side means 2 bits to the left and 2 bits to the right, for 2+4+2=8 bits in total.
 
I like Serena said:
2 bits on each side means 2 bits to the left and 2 bits to the right, for 2+4+2=8 bits in total.
Of course. Sorry about my misunderstanding.
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I have a quick questions. I am going through a book on C programming on my own. Afterwards, I plan to go through something call data structures and algorithms on my own also in C. I also need to learn C++, Matlab and for personal interest Haskell. For the two topic of data structures and algorithms, I understand there are standard ones across all programming languages. After learning it through C, what would be the biggest issue when trying to implement the same data...

Similar threads

Replies
19
Views
3K
Replies
11
Views
2K
Replies
2
Views
11K
Replies
2
Views
13K
Replies
8
Views
2K
Replies
2
Views
2K
Replies
34
Views
21K
Replies
2
Views
2K
Back
Top