signed nibble
    H. S. Teoh 
    hsteoh at quickfur.ath.cx
       
    Mon Jan  7 18:56:17 UTC 2019
    
    
  
On Mon, Jan 07, 2019 at 06:42:13PM +0000, Patrick Schluter via Digitalmars-d-learn wrote:
> On Monday, 7 January 2019 at 17:23:19 UTC, Michelle Long wrote:
> > Is there any direct way to convert a signed nibble in to a signed
> > byte with the same absolute value? Obviously I can do some bit
> > comparisons but just curious if there is a very quick way.
> 
> byte b = nibble | ((nibble & 0x40)?0xF0:0);
This is equivalent to doing a bit comparison (implied by the ?
operator).  You can do it without a branch:
	cast(byte)(nibble << 4) >> 4
will use the natural sign extension of a (signed) byte to "stretch" the
upper bit.  It just takes 2-3 CPU instructions.
T
-- 
Written on the window of a clothing store: No shirt, no shoes, no service.
    
    
More information about the Digitalmars-d-learn
mailing list