Last active
September 8, 2021 13:58
-
-
Save nick3499/92c60ff7b2e9c1a227413f75f3a343e4 to your computer and use it in GitHub Desktop.
Python: Decimal, Binary, Octal, Hex, ASCII Conversion Chart: hash table, color formatting, f-strings
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/python3 | |
'''Decimal/Binary/Octal/Hex/ASCII Conversion Chart''' | |
def generate_chart(): | |
'''Generate ASCII conversion chart.''' | |
# decimal keys with standard ASCII symbols | |
ascii_symbols = { | |
0: 'NUL', 1: 'SOH', 2: 'STX', 3: 'ETX', 4: 'EOT', 5: 'ENQ', 6: 'ACK', | |
7: 'BEL', 8: 'BS', 9: 'HT', 10: 'LF', 11: 'VT', 12: 'FF', 13: 'CR', | |
14: 'SO', 15: 'SI', 16: 'DLE', 17: 'DC1', 18: 'DC2', 19: 'DC3', | |
20: 'DC4', 21: 'NAK', 22: 'SYN', 23: 'ETB', 24: 'CAN', 25: 'EM', | |
26: 'SUB', 27: 'ESC', 28: 'FS', 29: 'GS', 30: 'RS', 31: 'US', 32: 'SP', | |
33: '!', 34: '"', 35: '#', 36: '$', 37: '%', 38: '&', 39: "'", 40: '(', | |
41: ')', 42: '*', 43: '+', 44: ',', 45: '-', 46: '.', 47: '/', 48: '0', | |
49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', | |
57: '9', 58: ':', 59: ';', 60: '<', 61: '=', 62: '>', 63: '?', 64: '@', | |
65: 'A', 66: 'B', 67: 'C', 68: 'D', 69: 'E', 70: 'F', 71: 'G', 72: 'H', | |
73: 'I', 74: 'J', 75: 'K', 76: 'L', 77: 'M', 78: 'N', 79: 'O', 80: 'P', | |
81: 'Q', 82: 'R', 83: 'S', 84: 'T', 85: 'U', 86: 'V', 87: 'W', 88: 'X', | |
89: 'Y', 90: 'Z', 91: '[', 92: '\\', 93: ']', 94: '^', 95: '_', | |
96: '`', 97: 'a', 98: 'b', 99: 'c', 100: 'd', 101: 'e', 102: 'f', | |
103: 'g', 104: 'h', 105: 'i', 106: 'j', 107: 'k', 108: 'l', 109: 'm', | |
110: 'n', 111: 'o', 112: 'p', 113: 'q', 114: 'r', 115: 's', 116: 't', | |
117: 'u', 118: 'v', 119: 'w', 120: 'x', 121: 'y', 122: 'z', 123: '{', | |
124: '|', 125: '}', 126: '~', 127: 'DEL' | |
} | |
# column titles | |
print('\x1b[38;2;72;201;176mDec Bin Oct Hex ASCII\x1b[0m') | |
# color format | |
c_1 = '\x1b[38;2;72;201;176m' | |
c_2 = '\x1b[38;2;244;208;63m' | |
c_3 = '\x1b[38;2;220;118;51m' | |
res = '\x1b[0m' | |
# generate chart | |
for number in range(128): | |
print(f'{c_1}{number:3} \ | |
{c_2}{bin(number)[2:]:0>8} \ | |
{c_3}{oct(number)[2:]:0>3} \ | |
{c_1}{hex(number)[2:]:0>2} \ | |
{c_2}{ascii_symbols[number]}{res}') | |
if __name__ == '__main__': | |
generate_chart() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
was able to run the raw Gist right from github.com using Z Shell, so Bash should also work
$ curl -s https://gist.githubusercontent.com/nick3499/92c60ff7b2e9c1a227413f75f3a343e4/raw/5da5a0481ff9383276f81f9afa3a0c6061ef44d0/dec_bin_oct_hex_ascii_chart.py | python3