ACSUtils Wiki

An ACS library for ZDoom-based ports

User Tools

Site Tools


new:bits

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
new:bits [2018/02/18 19:15] korshunnew:bits [2018/02/19 12:29] (current) korshun
Line 1: Line 1:
 ====== Bit functions ====== ====== Bit functions ======
 +
 +These functions are for bit math.
 +
 +===== Powers of two =====
 +
 +  * ''int npo2(int x)'' -- returns the next lowest power of 2 greater or equal to X.
 +  * ''int bitlog2(int x)'' -- returns the index of the highest used bit, aka integer binary logarithm. Useful to convert flags like ''1<<8 = 256'' back into ''8''.
  
 ===== Working with bit arrays ===== ===== Working with bit arrays =====
Line 5: Line 12:
 These functions allow you to work with variables as if they were arrays of bits: These functions allow you to work with variables as if they were arrays of bits:
  
-  * ''bool getbit(int a, int i)'' -- returns bit ''a[i]'' +  * ''bool getbit(int a, int i)'' -- returns bit ''a[i]''. 
-  * ''void setbit(int a, int i)'' -- performs ''a[i] = 1'' +  * ''int setbit(int a, int i)'' -- performs ''a[i] = 1'' and returns the result. 
-  * ''void clrbit(int a, int i)'' -- performs ''a[i] = 0'' +  * ''int clrbit(int a, int i)'' -- performs ''a[i] = 0'' and returns the result. 
-  * ''void tglbit(int a, int i)'' -- performs ''a[i] = !a[i]''+  * ''int tglbit(int a, int i)'' -- performs ''a[i] = !a[i]'' and returns the result.
  
 ===== Unsetting bit flags ===== ===== Unsetting bit flags =====
new/bits.1518974116.txt.gz · Last modified: 2018/02/18 19:15 by korshun