Nibble Logic

Just starting out? Need help? Post your questions and find answers here.
User avatar
jacdelad
Addict
Addict
Posts: 1431
Joined: Wed Feb 03, 2021 12:46 pm
Location: Planet Riesa
Contact:

Nibble Logic

Post by jacdelad »

I know, this is mostly useless, but is this the right approach?

Code: Select all

Macro LoNibble(temp)
  (temp&15)
EndMacro
Macro HiNibble(temp)
  (temp>>4&15)
EndMacro
Macro SetHiNibble(temp,value)
  ((temp&15)+(value&240))
EndMacro
Macro SetLoNibble(temp,value)
  ((temp&240)+(value&15))
EndMacro

Debug "%"+RSet(Bin(SetHiNibble(0,255)),8,"0")
Debug "%"+RSet(Bin(SetLoNibble(0,255)),8,"0")
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
User avatar
mk-soft
Always Here
Always Here
Posts: 5333
Joined: Fri May 12, 2006 6:51 pm
Location: Germany

Re: Nibble Logic

Post by mk-soft »

With hex values is better to read

Code: Select all

Macro LoNibble(_byte_)
  (_byte_ & $0F)
EndMacro

Macro HiNibble(_byte_)
  ( _byte_ >> 4 & $0F)
EndMacro

Macro SetHiNibble(_byte_, value)
  _byte_ = (_byte_ & $0F) | (value << 4)
EndMacro

Macro SetLoNibble(_byte_, value)
  _byte_ = (_byte_ & $F0) | (value & $0F)
EndMacro

b1.a = $12

Debug LoNibble(b1)
Debug HiNibble(b1)

SetHiNibble(b1, $A)
SetLoNibble(b1, $E)

Debug Hex(b1, #PB_Byte)

My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
User avatar
jacdelad
Addict
Addict
Posts: 1431
Joined: Wed Feb 03, 2021 12:46 pm
Location: Planet Riesa
Contact:

Re: Nibble Logic

Post by jacdelad »

Right. And the Set-Function is also better. Thanks!
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Post Reply