Browse Source

new macro 'ispow2'

Roberto Ierusalimschy 7 years ago
parent
commit
06127927ff
1 changed files with 7 additions and 1 deletions
  1. 7 1
      llimits.h

+ 7 - 1
llimits.h

@@ -1,5 +1,5 @@
 /*
-** $Id: llimits.h,v 1.149 2018/01/28 15:13:26 roberto Exp roberto $
+** $Id: llimits.h,v 1.150 2018/05/30 14:25:52 roberto Exp roberto $
 ** Limits, basic types, and some other 'installation-dependent' definitions
 ** See Copyright Notice in lua.h
 */
@@ -59,6 +59,12 @@ typedef signed char ls_byte;
 #define log2maxs(t)	(sizeof(t) * 8 - 2)
 
 
+/*
+** test whether an unsigned value is a power of 2 (or zero)
+*/
+#define ispow2(x)	(((x) & ((x) - 1)) == 0)
+
+
 /*
 ** conversion of pointer to unsigned integer:
 ** this is for hashing only; there is no problem if the integer