//************************************************************************************************ // avr-gcc no longer supports the 0bXXXXXXXX binary literals extension, so... // // This code is released into the public domain, and may be freely used for any purpose. //************************************************************************************************ /* // g++ genbindefs.cpp -o genbindefs; ./genbindefs #include #include #include #include using namespace std; void PrintBin(uint32_t val, int bits, char one, char zero) { for(int j = bits - 1; j >= 0; --j) cout << ((val & (1 << j))? one : zero); } void PrintBinDefs(int bits, const string & prefix, char one, char zero) { for(int j = 0; j < (1 << bits); ++j) { cout << "#define " << prefix; PrintBin(j, bits, one, zero); cout.setf(ios_base::uppercase); //cout.setf(ios_base::showbase); cout.setf(ios_base::hex); cout.unsetf(ios_base::dec); cout << " (0x" << j << ")" << endl; } } int main() { cout << "\n// 2 bits" << endl; PrintBinDefs(2, "b", '1', '0'); cout << "\n// 3 bits" << endl; PrintBinDefs(3, "b", '1', '0'); cout << "\n// 4 bits" << endl; PrintBinDefs(4, "b", '1', '0'); cout << "\n// 8 bits" << endl; PrintBinDefs(8, "b", '1', '0'); cout << "\n// Underscore/O definitions for declaring bitmaps" << endl; PrintBinDefs(8, "", 'O', '_'); return EXIT_SUCCESS; } */ //************************************************************************************************ #ifndef BINDEFS_H #define BINDEFS_H // 2 bits #define b00 (0x0) #define b01 (0x1) #define b10 (0x2) #define b11 (0x3) // 3 bits #define b000 (0x0) #define b001 (0x1) #define b010 (0x2) #define b011 (0x3) #define b100 (0x4) #define b101 (0x5) #define b110 (0x6) #define b111 (0x7) // 4 bits #define b0000 (0x0) #define b0001 (0x1) #define b0010 (0x2) #define b0011 (0x3) #define b0100 (0x4) #define b0101 (0x5) #define b0110 (0x6) #define b0111 (0x7) #define b1000 (0x8) #define b1001 (0x9) #define b1010 (0xA) #define b1011 (0xB) #define b1100 (0xC) #define b1101 (0xD) #define b1110 (0xE) #define b1111 (0xF) // 8 bits #define b00000000 (0x0) #define b00000001 (0x1) #define b00000010 (0x2) #define b00000011 (0x3) #define b00000100 (0x4) #define b00000101 (0x5) #define b00000110 (0x6) #define b00000111 (0x7) #define b00001000 (0x8) #define b00001001 (0x9) #define b00001010 (0xA) #define b00001011 (0xB) #define b00001100 (0xC) #define b00001101 (0xD) #define b00001110 (0xE) #define b00001111 (0xF) #define b00010000 (0x10) #define b00010001 (0x11) #define b00010010 (0x12) #define b00010011 (0x13) #define b00010100 (0x14) #define b00010101 (0x15) #define b00010110 (0x16) #define b00010111 (0x17) #define b00011000 (0x18) #define b00011001 (0x19) #define b00011010 (0x1A) #define b00011011 (0x1B) #define b00011100 (0x1C) #define b00011101 (0x1D) #define b00011110 (0x1E) #define b00011111 (0x1F) #define b00100000 (0x20) #define b00100001 (0x21) #define b00100010 (0x22) #define b00100011 (0x23) #define b00100100 (0x24) #define b00100101 (0x25) #define b00100110 (0x26) #define b00100111 (0x27) #define b00101000 (0x28) #define b00101001 (0x29) #define b00101010 (0x2A) #define b00101011 (0x2B) #define b00101100 (0x2C) #define b00101101 (0x2D) #define b00101110 (0x2E) #define b00101111 (0x2F) #define b00110000 (0x30) #define b00110001 (0x31) #define b00110010 (0x32) #define b00110011 (0x33) #define b00110100 (0x34) #define b00110101 (0x35) #define b00110110 (0x36) #define b00110111 (0x37) #define b00111000 (0x38) #define b00111001 (0x39) #define b00111010 (0x3A) #define b00111011 (0x3B) #define b00111100 (0x3C) #define b00111101 (0x3D) #define b00111110 (0x3E) #define b00111111 (0x3F) #define b01000000 (0x40) #define b01000001 (0x41) #define b01000010 (0x42) #define b01000011 (0x43) #define b01000100 (0x44) #define b01000101 (0x45) #define b01000110 (0x46) #define b01000111 (0x47) #define b01001000 (0x48) #define b01001001 (0x49) #define b01001010 (0x4A) #define b01001011 (0x4B) #define b01001100 (0x4C) #define b01001101 (0x4D) #define b01001110 (0x4E) #define b01001111 (0x4F) #define b01010000 (0x50) #define b01010001 (0x51) #define b01010010 (0x52) #define b01010011 (0x53) #define b01010100 (0x54) #define b01010101 (0x55) #define b01010110 (0x56) #define b01010111 (0x57) #define b01011000 (0x58) #define b01011001 (0x59) #define b01011010 (0x5A) #define b01011011 (0x5B) #define b01011100 (0x5C) #define b01011101 (0x5D) #define b01011110 (0x5E) #define b01011111 (0x5F) #define b01100000 (0x60) #define b01100001 (0x61) #define b01100010 (0x62) #define b01100011 (0x63) #define b01100100 (0x64) #define b01100101 (0x65) #define b01100110 (0x66) #define b01100111 (0x67) #define b01101000 (0x68) #define b01101001 (0x69) #define b01101010 (0x6A) #define b01101011 (0x6B) #define b01101100 (0x6C) #define b01101101 (0x6D) #define b01101110 (0x6E) #define b01101111 (0x6F) #define b01110000 (0x70) #define b01110001 (0x71) #define b01110010 (0x72) #define b01110011 (0x73) #define b01110100 (0x74) #define b01110101 (0x75) #define b01110110 (0x76) #define b01110111 (0x77) #define b01111000 (0x78) #define b01111001 (0x79) #define b01111010 (0x7A) #define b01111011 (0x7B) #define b01111100 (0x7C) #define b01111101 (0x7D) #define b01111110 (0x7E) #define b01111111 (0x7F) #define b10000000 (0x80) #define b10000001 (0x81) #define b10000010 (0x82) #define b10000011 (0x83) #define b10000100 (0x84) #define b10000101 (0x85) #define b10000110 (0x86) #define b10000111 (0x87) #define b10001000 (0x88) #define b10001001 (0x89) #define b10001010 (0x8A) #define b10001011 (0x8B) #define b10001100 (0x8C) #define b10001101 (0x8D) #define b10001110 (0x8E) #define b10001111 (0x8F) #define b10010000 (0x90) #define b10010001 (0x91) #define b10010010 (0x92) #define b10010011 (0x93) #define b10010100 (0x94) #define b10010101 (0x95) #define b10010110 (0x96) #define b10010111 (0x97) #define b10011000 (0x98) #define b10011001 (0x99) #define b10011010 (0x9A) #define b10011011 (0x9B) #define b10011100 (0x9C) #define b10011101 (0x9D) #define b10011110 (0x9E) #define b10011111 (0x9F) #define b10100000 (0xA0) #define b10100001 (0xA1) #define b10100010 (0xA2) #define b10100011 (0xA3) #define b10100100 (0xA4) #define b10100101 (0xA5) #define b10100110 (0xA6) #define b10100111 (0xA7) #define b10101000 (0xA8) #define b10101001 (0xA9) #define b10101010 (0xAA) #define b10101011 (0xAB) #define b10101100 (0xAC) #define b10101101 (0xAD) #define b10101110 (0xAE) #define b10101111 (0xAF) #define b10110000 (0xB0) #define b10110001 (0xB1) #define b10110010 (0xB2) #define b10110011 (0xB3) #define b10110100 (0xB4) #define b10110101 (0xB5) #define b10110110 (0xB6) #define b10110111 (0xB7) #define b10111000 (0xB8) #define b10111001 (0xB9) #define b10111010 (0xBA) #define b10111011 (0xBB) #define b10111100 (0xBC) #define b10111101 (0xBD) #define b10111110 (0xBE) #define b10111111 (0xBF) #define b11000000 (0xC0) #define b11000001 (0xC1) #define b11000010 (0xC2) #define b11000011 (0xC3) #define b11000100 (0xC4) #define b11000101 (0xC5) #define b11000110 (0xC6) #define b11000111 (0xC7) #define b11001000 (0xC8) #define b11001001 (0xC9) #define b11001010 (0xCA) #define b11001011 (0xCB) #define b11001100 (0xCC) #define b11001101 (0xCD) #define b11001110 (0xCE) #define b11001111 (0xCF) #define b11010000 (0xD0) #define b11010001 (0xD1) #define b11010010 (0xD2) #define b11010011 (0xD3) #define b11010100 (0xD4) #define b11010101 (0xD5) #define b11010110 (0xD6) #define b11010111 (0xD7) #define b11011000 (0xD8) #define b11011001 (0xD9) #define b11011010 (0xDA) #define b11011011 (0xDB) #define b11011100 (0xDC) #define b11011101 (0xDD) #define b11011110 (0xDE) #define b11011111 (0xDF) #define b11100000 (0xE0) #define b11100001 (0xE1) #define b11100010 (0xE2) #define b11100011 (0xE3) #define b11100100 (0xE4) #define b11100101 (0xE5) #define b11100110 (0xE6) #define b11100111 (0xE7) #define b11101000 (0xE8) #define b11101001 (0xE9) #define b11101010 (0xEA) #define b11101011 (0xEB) #define b11101100 (0xEC) #define b11101101 (0xED) #define b11101110 (0xEE) #define b11101111 (0xEF) #define b11110000 (0xF0) #define b11110001 (0xF1) #define b11110010 (0xF2) #define b11110011 (0xF3) #define b11110100 (0xF4) #define b11110101 (0xF5) #define b11110110 (0xF6) #define b11110111 (0xF7) #define b11111000 (0xF8) #define b11111001 (0xF9) #define b11111010 (0xFA) #define b11111011 (0xFB) #define b11111100 (0xFC) #define b11111101 (0xFD) #define b11111110 (0xFE) #define b11111111 (0xFF) // Underscore/O definitions for declaring bitmaps #define ________ (0x0) #define _______O (0x1) #define ______O_ (0x2) #define ______OO (0x3) #define _____O__ (0x4) #define _____O_O (0x5) #define _____OO_ (0x6) #define _____OOO (0x7) #define ____O___ (0x8) #define ____O__O (0x9) #define ____O_O_ (0xA) #define ____O_OO (0xB) #define ____OO__ (0xC) #define ____OO_O (0xD) #define ____OOO_ (0xE) #define ____OOOO (0xF) #define ___O____ (0x10) #define ___O___O (0x11) #define ___O__O_ (0x12) #define ___O__OO (0x13) #define ___O_O__ (0x14) #define ___O_O_O (0x15) #define ___O_OO_ (0x16) #define ___O_OOO (0x17) #define ___OO___ (0x18) #define ___OO__O (0x19) #define ___OO_O_ (0x1A) #define ___OO_OO (0x1B) #define ___OOO__ (0x1C) #define ___OOO_O (0x1D) #define ___OOOO_ (0x1E) #define ___OOOOO (0x1F) #define __O_____ (0x20) #define __O____O (0x21) #define __O___O_ (0x22) #define __O___OO (0x23) #define __O__O__ (0x24) #define __O__O_O (0x25) #define __O__OO_ (0x26) #define __O__OOO (0x27) #define __O_O___ (0x28) #define __O_O__O (0x29) #define __O_O_O_ (0x2A) #define __O_O_OO (0x2B) #define __O_OO__ (0x2C) #define __O_OO_O (0x2D) #define __O_OOO_ (0x2E) #define __O_OOOO (0x2F) #define __OO____ (0x30) #define __OO___O (0x31) #define __OO__O_ (0x32) #define __OO__OO (0x33) #define __OO_O__ (0x34) #define __OO_O_O (0x35) #define __OO_OO_ (0x36) #define __OO_OOO (0x37) #define __OOO___ (0x38) #define __OOO__O (0x39) #define __OOO_O_ (0x3A) #define __OOO_OO (0x3B) #define __OOOO__ (0x3C) #define __OOOO_O (0x3D) #define __OOOOO_ (0x3E) #define __OOOOOO (0x3F) #define _O______ (0x40) #define _O_____O (0x41) #define _O____O_ (0x42) #define _O____OO (0x43) #define _O___O__ (0x44) #define _O___O_O (0x45) #define _O___OO_ (0x46) #define _O___OOO (0x47) #define _O__O___ (0x48) #define _O__O__O (0x49) #define _O__O_O_ (0x4A) #define _O__O_OO (0x4B) #define _O__OO__ (0x4C) #define _O__OO_O (0x4D) #define _O__OOO_ (0x4E) #define _O__OOOO (0x4F) #define _O_O____ (0x50) #define _O_O___O (0x51) #define _O_O__O_ (0x52) #define _O_O__OO (0x53) #define _O_O_O__ (0x54) #define _O_O_O_O (0x55) #define _O_O_OO_ (0x56) #define _O_O_OOO (0x57) #define _O_OO___ (0x58) #define _O_OO__O (0x59) #define _O_OO_O_ (0x5A) #define _O_OO_OO (0x5B) #define _O_OOO__ (0x5C) #define _O_OOO_O (0x5D) #define _O_OOOO_ (0x5E) #define _O_OOOOO (0x5F) #define _OO_____ (0x60) #define _OO____O (0x61) #define _OO___O_ (0x62) #define _OO___OO (0x63) #define _OO__O__ (0x64) #define _OO__O_O (0x65) #define _OO__OO_ (0x66) #define _OO__OOO (0x67) #define _OO_O___ (0x68) #define _OO_O__O (0x69) #define _OO_O_O_ (0x6A) #define _OO_O_OO (0x6B) #define _OO_OO__ (0x6C) #define _OO_OO_O (0x6D) #define _OO_OOO_ (0x6E) #define _OO_OOOO (0x6F) #define _OOO____ (0x70) #define _OOO___O (0x71) #define _OOO__O_ (0x72) #define _OOO__OO (0x73) #define _OOO_O__ (0x74) #define _OOO_O_O (0x75) #define _OOO_OO_ (0x76) #define _OOO_OOO (0x77) #define _OOOO___ (0x78) #define _OOOO__O (0x79) #define _OOOO_O_ (0x7A) #define _OOOO_OO (0x7B) #define _OOOOO__ (0x7C) #define _OOOOO_O (0x7D) #define _OOOOOO_ (0x7E) #define _OOOOOOO (0x7F) #define O_______ (0x80) #define O______O (0x81) #define O_____O_ (0x82) #define O_____OO (0x83) #define O____O__ (0x84) #define O____O_O (0x85) #define O____OO_ (0x86) #define O____OOO (0x87) #define O___O___ (0x88) #define O___O__O (0x89) #define O___O_O_ (0x8A) #define O___O_OO (0x8B) #define O___OO__ (0x8C) #define O___OO_O (0x8D) #define O___OOO_ (0x8E) #define O___OOOO (0x8F) #define O__O____ (0x90) #define O__O___O (0x91) #define O__O__O_ (0x92) #define O__O__OO (0x93) #define O__O_O__ (0x94) #define O__O_O_O (0x95) #define O__O_OO_ (0x96) #define O__O_OOO (0x97) #define O__OO___ (0x98) #define O__OO__O (0x99) #define O__OO_O_ (0x9A) #define O__OO_OO (0x9B) #define O__OOO__ (0x9C) #define O__OOO_O (0x9D) #define O__OOOO_ (0x9E) #define O__OOOOO (0x9F) #define O_O_____ (0xA0) #define O_O____O (0xA1) #define O_O___O_ (0xA2) #define O_O___OO (0xA3) #define O_O__O__ (0xA4) #define O_O__O_O (0xA5) #define O_O__OO_ (0xA6) #define O_O__OOO (0xA7) #define O_O_O___ (0xA8) #define O_O_O__O (0xA9) #define O_O_O_O_ (0xAA) #define O_O_O_OO (0xAB) #define O_O_OO__ (0xAC) #define O_O_OO_O (0xAD) #define O_O_OOO_ (0xAE) #define O_O_OOOO (0xAF) #define O_OO____ (0xB0) #define O_OO___O (0xB1) #define O_OO__O_ (0xB2) #define O_OO__OO (0xB3) #define O_OO_O__ (0xB4) #define O_OO_O_O (0xB5) #define O_OO_OO_ (0xB6) #define O_OO_OOO (0xB7) #define O_OOO___ (0xB8) #define O_OOO__O (0xB9) #define O_OOO_O_ (0xBA) #define O_OOO_OO (0xBB) #define O_OOOO__ (0xBC) #define O_OOOO_O (0xBD) #define O_OOOOO_ (0xBE) #define O_OOOOOO (0xBF) #define OO______ (0xC0) #define OO_____O (0xC1) #define OO____O_ (0xC2) #define OO____OO (0xC3) #define OO___O__ (0xC4) #define OO___O_O (0xC5) #define OO___OO_ (0xC6) #define OO___OOO (0xC7) #define OO__O___ (0xC8) #define OO__O__O (0xC9) #define OO__O_O_ (0xCA) #define OO__O_OO (0xCB) #define OO__OO__ (0xCC) #define OO__OO_O (0xCD) #define OO__OOO_ (0xCE) #define OO__OOOO (0xCF) #define OO_O____ (0xD0) #define OO_O___O (0xD1) #define OO_O__O_ (0xD2) #define OO_O__OO (0xD3) #define OO_O_O__ (0xD4) #define OO_O_O_O (0xD5) #define OO_O_OO_ (0xD6) #define OO_O_OOO (0xD7) #define OO_OO___ (0xD8) #define OO_OO__O (0xD9) #define OO_OO_O_ (0xDA) #define OO_OO_OO (0xDB) #define OO_OOO__ (0xDC) #define OO_OOO_O (0xDD) #define OO_OOOO_ (0xDE) #define OO_OOOOO (0xDF) #define OOO_____ (0xE0) #define OOO____O (0xE1) #define OOO___O_ (0xE2) #define OOO___OO (0xE3) #define OOO__O__ (0xE4) #define OOO__O_O (0xE5) #define OOO__OO_ (0xE6) #define OOO__OOO (0xE7) #define OOO_O___ (0xE8) #define OOO_O__O (0xE9) #define OOO_O_O_ (0xEA) #define OOO_O_OO (0xEB) #define OOO_OO__ (0xEC) #define OOO_OO_O (0xED) #define OOO_OOO_ (0xEE) #define OOO_OOOO (0xEF) #define OOOO____ (0xF0) #define OOOO___O (0xF1) #define OOOO__O_ (0xF2) #define OOOO__OO (0xF3) #define OOOO_O__ (0xF4) #define OOOO_O_O (0xF5) #define OOOO_OO_ (0xF6) #define OOOO_OOO (0xF7) #define OOOOO___ (0xF8) #define OOOOO__O (0xF9) #define OOOOO_O_ (0xFA) #define OOOOO_OO (0xFB) #define OOOOOO__ (0xFC) #define OOOOOO_O (0xFD) #define OOOOOOO_ (0xFE) #define OOOOOOOO (0xFF) #endif // BINDEFS_H