Contents
  - ascii.py
  
 - ascii_table.py
  
 - binaryToDecimalIterateOverCharacters.py
  
 - binaryToDecimalIterateOverExponents.py
  
 - binaryToDecimal.py
  
 - test.py
 
ascii.py 1/6
[top][prev][next]
# Conversion of a text message into ASCII
# by Sara Sprenkle
print()
print("This program converts a textual message into a sequence")
print("of numbers representing the ASCII encoding of the message.")
print()
message = input("Enter the message to encode: ")
print()
print("Here are the ASCII codes for '" + message + "':")
for ch in message:
    print(ord(ch), end=" ")
print()
ascii_table.py 2/6
[top][prev][next]
# Create a table of numbers (ASCII) and their character equivalent
# by Sara Sprenkle
print("This program prints out the ASCII Table")
print("DEC CHAR")
print("-"*3, "-"*4)
for i in range(33, 127):
    print("%3d %4s" % (i, chr(i)))
    
binaryToDecimalIterateOverCharacters.py 3/6
[top][prev][next]
# Converts a binary number into a decimal.
# Iterates over the characters in the string,
# i.e., from left to right in the string.
# By CSCI111
print("This program converts a binary number into a decimal number.")
# todo: get input from the user
binNum = "10110"
decVal = 0
exponent = len(binNum)
for char in binNum:
    bit = int(char)
    exponent -= 1
    decVal += bit * 2**exponent
print(binNum, "has a decimal value of", decVal)
binaryToDecimalIterateOverExponents.py 4/6
[top][prev][next]
# Converts a binary number into a decimal.
# Iterates over the exponents,
# i.e., from right to left over the binary number.
# By CSCI111
import test
def main():
    print("This program converts a binary number into a decimal number.")
    
    binaryNum = input("What is your binary number? ")
    decVal = binaryToDecimal(binaryNum)
    print("The decimal value of", binaryNum, "is", decVal)
def testBinaryToDecimal():
    test.testEqual(binaryToDecimal("0"), 0)
    test.testEqual(binaryToDecimal("1"), 1)
    test.testEqual(binaryToDecimal("1000"), 8)
    test.testEqual(binaryToDecimal("1111"), 15)
    
def binaryToDecimal(binary):
    """
    Pre: binary should be a string containing only 0s and 1s
    Post: convert binary into a decimal value and return that value
    """
    decVal = 0
    for exponent in range(len(binary)):
        index = len(binary) - (exponent + 1)
        char = binary[index]
        if char == "1":
            decVal += 2**exponent
        # Alternative: 
        # bit = int(char)
        # decVal += bit * 2 ** exponent
    
    return decVal
    
testBinaryToDecimal()
binaryToDecimal.py 5/6
[top][prev][next]
# Converts a binary number into a decimal.
# Iterates over the exponents (i.e., from right to left).
# By CSCI111
import test
def main():
    print("This program converts a binary number into a decimal number.")
    
    binaryNum = input("What is your binary number? ")
    decVal = binaryToDecimal(binaryNum)
    print("The decimal value of", binaryNum, "is", decVal)
def testBinaryToDecimal():
    test.testEqual(binaryToDecimal("0"), 0)
    test.testEqual(binaryToDecimal("1"), 1)
    test.testEqual(binaryToDecimal("1000"), 8)
    test.testEqual(binaryToDecimal("1111"), 15)
    
def binaryToDecimal(binary):
    """
    Pre: binary should be a string containing only 0s and 1s
    Post: convert binary into a decimal value and return that value
    """
    # The starting exponent will be the length of the string-1
    exponent = len(binary) - 1
    # Initialize the result to zero
    decimalNumber = 0
    # For each bit in the binary number
    for char in binary:
        # Multiply the bit by the appropriate power of 2
        bit = int(char)
        value = bit * 2 ** exponent
        # Add this to the result
        decimalNumber = decimalNumber + value
        # Reduce the exponent by 1
        exponent = exponent - 1
    # return the result
    return decimalNumber
testBinaryToDecimal()
test.py 6/6
[top][prev][next]
# From How to Think Like a Computer Scientist textbook
def testEqual(actual, expected):
    if type(expected) == type(1):
        # they're integers, so check if exactly the same
        if actual == expected:
            print('Pass')
            return True
    elif type(expected) == type(1.11):
        # a float is expected, so just check if it's very close, to allow for
        # rounding errors
        if abs(actual-expected) < 0.00001:
            print('Pass')
            return True
    else:
        # check if they are equal
        if actual == expected:
            print('Pass')
            return True
    print('Test Failed: expected ' + str(expected) + ' but got ' + str(actual))
    return False
Generated by GNU Enscript 1.6.6.