Exemplo n.º 1
0
def twos_complement(binary):
    """Conversion algorithm from
    cs.cornell.edu/~tomf/notes/cps104/twoscomp.html#twotwo"""
    old = binary
    binary = ones_complement(binary)
    ones = binary
    binary = BaseDataType.increment(''.join(binary))
    if DEBUG:
        print('Complements: one: {}, two: {}, (original: {})'.format(
            ''.join(ones), binary, ''.join(old)))
    dec = bin_to_dec(binary)
    sign, res = ('neg', -dec) if list(binary)[0] == '1' else ('pos', dec,)
    res_bin = dec_to_bin(res)
    if DEBUG:
        print('Final decimal is {}: {} ({})'.format(sign, res, res_bin))
    return res_bin
Exemplo n.º 2
0
def twos_complement(binary):
    """Conversion algorithm from
    cs.cornell.edu/~tomf/notes/cps104/twoscomp.html#twotwo"""
    old = binary
    binary = ones_complement(binary)
    ones = binary
    binary = BaseDataType.increment(''.join(binary))
    if DEBUG:
        print('Complements: one: {}, two: {}, (original: {})'.format(
            ''.join(ones), binary, ''.join(old)))
    dec = bin_to_dec(binary)
    sign, res = ('neg', -dec) if list(binary)[0] == '1' else (
        'pos',
        dec,
    )
    res_bin = dec_to_bin(res)
    if DEBUG:
        print('Final decimal is {}: {} ({})'.format(sign, res, res_bin))
    return res_bin