Subject:
|
Re: Rotating through a four-bit nibble
|
Newsgroups:
|
lugnet.robotics
|
Date:
|
Tue, 20 Sep 2005 16:57:56 GMT
|
Viewed:
|
1185 times
|
| |
| |
In lugnet.robotics, Brian Davis wrote:
> No, it's not pornographic (look over in rtlToronto - I hear it's a fun
> thread). But I'm working in NQC, and I need to rotate the bit series in a 4-bit
> (or 8-bit) nibble embedded in a 16-bit word. Annoying. Any suggestions? Masking
> the desired four bits out of a storage variable and into a temporary variable
> four times (so it's a repeating pattern) and then rotating and masking out the
> desired sequence might work, but is there a better way? Bit-level manipulation
> is not my strong suite.
>
> (x's here are "something else" that I may wish to keep intact, y is garbage or
> potentially trashed bits)
>
> stored sequence in 16-bit word: xxxx xxxx 0110 xxxx
> 4-bit nibble copied across temporary: xxxx 0110 0110 0110
> left shift temporary, say, twice: xx01 1001 1001 10yy
> mask out one nibble back into storage: xxxx xxxx 1001 xxxx
>
> There's got to be a better way. I'm using NQC, so I'm stuck with those big
> 16-bit words and basic operations like bit logic, shifts, and interger division
> (and of course modulo division).
>
> Anybody?
One way to do this might be by using multiplication and division.
Temp = (Input & 0000 0000 0011 0000)*4 + (Input & 0000 0000 1100 0000)/4
Output = (Input & 1111 1111 0000 1111) & (Temp & 0000 0000 1111 0000)
Although I imagine that can be condensed to one line with a bit of thought.
Tim
|
|
Message is in Reply To:
| | Rotating through a four-bit nibble
|
| No, it's not pornographic (look over in rtlToronto - I hear it's a fun thread). But I'm working in NQC, and I need to rotate the bit series in a 4-bit (or 8-bit) nibble embedded in a 16-bit word. Annoying. Any suggestions? Masking the desired four (...) (19 years ago, 20-Sep-05, to lugnet.robotics)
|
13 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|