示例#1
0
def bin(val, align=0):
    if isinstance(val, int):
        return builtins.bin(val).lstrip('0b').zfill(align)
    elif type(val) in (bytes, bytearray, list, tuple):
        return ''.join([builtins.bin(b).lstrip('0b').zfill(8)
                        for b in val]).zfill(align)
    else:
        raise TypeError('Int, bytes or bytearray object is needed')
示例#2
0
def bin(num: object) -> str:
    """
    A zero padding aware verison of the builin bin function that converts ints
    to string representations of binary numbers.
    """
    global builtins, _SignedInt, _UnsignedInt
    if isinstance(num, _UnsignedInt):
        cls = type(num)
        body = builtins.bin(num).lstrip("0b")
        width = cls._bit_width_
        # u0 returns only '0b'm this is for consistency's sake, no outlier cases
        return f"{cls.__name__}(0b{'0'*(width - len(body)) + body})"
    elif isinstance(num, _SignedInt):
        cls = type(num)
        body = builtins.bin(num).lstrip("-0b")
        width = cls._bit_width_ - 1
        return f"{cls.__name__}({'-0b' if num < 0 else '0b'}{'0'*(width - len(body)) + body})"
    else:
        return builtins.bin(num)
示例#3
0
 def integer_to_ascii(num: int) -> str:
     """
     Перевод числа в текст.
     @param num: сумма символов в ASCII
     @returns res: бинарная строка.
     """
     res = builtins.str(builtins.bin(num)).replace('0b', '')
     counter = len(res) % 8
     for i in range(8 - counter):
         res = '0' + res
     return res
示例#4
0
    lambda *args, **kwargs: wrap(builtins.abs)(*args, **kwargs), builtins.abs)
all = functools.update_wrapper(
    lambda *args, **kwargs: builtins.all(*args, **kwargs), builtins.all)
all._ = functools.update_wrapper(
    lambda *args, **kwargs: wrap(builtins.all)(*args, **kwargs), builtins.all)
any = functools.update_wrapper(
    lambda *args, **kwargs: builtins.any(*args, **kwargs), builtins.any)
any._ = functools.update_wrapper(
    lambda *args, **kwargs: wrap(builtins.any)(*args, **kwargs), builtins.any)
ascii = functools.update_wrapper(
    lambda *args, **kwargs: builtins.ascii(*args, **kwargs), builtins.ascii)
ascii._ = functools.update_wrapper(
    lambda *args, **kwargs: wrap(builtins.ascii)(*args, **kwargs),
    builtins.ascii)
bin = functools.update_wrapper(
    lambda *args, **kwargs: builtins.bin(*args, **kwargs), builtins.bin)
bin._ = functools.update_wrapper(
    lambda *args, **kwargs: wrap(builtins.bin)(*args, **kwargs), builtins.bin)
bool = functools.update_wrapper(
    lambda *args, **kwargs: builtins.bool(*args, **kwargs), builtins.bool)
bool._ = functools.update_wrapper(
    lambda *args, **kwargs: wrap(builtins.bool)(*args, **kwargs),
    builtins.bool)
breakpoint = functools.update_wrapper(
    lambda *args, **kwargs: builtins.breakpoint(*args, **kwargs),
    builtins.breakpoint)
breakpoint._ = functools.update_wrapper(
    lambda *args, **kwargs: wrap(builtins.breakpoint)(*args, **kwargs),
    builtins.breakpoint)
bytearray = functools.update_wrapper(
    lambda *args, **kwargs: builtins.bytearray(*args, **kwargs),
示例#5
0
Others read the low bytes first ==> little endian.

BOM: byte order marker

"""

# defining functions (the hard part !!!):

b2d = lambda x: int(x, 2)  # binary str to decimal
# int.
# inverse of bin(x)
# gonna need it

# getting rid of the annoying leading '0b'
import builtins
bin = lambda x: builtins.bin(x)[2:]

# or: bin=lambda x:f"{x:b}"
# (formatted str doesn't add 0b)


# Now the only easy encoding !!! :
def utf32(text, be):  # BE stands for
    # big endianness
    ls = []
    for c in text:
        cp = ord(c)  # Python recognizes
        # Unicode characters
        # and gives their
        # code points
        s = bin(cp).zfill(32)
示例#6
0
文件: bpipe.py 项目: mavnt/bpipe
def bin(x=None):
    if x is None:
        return bpipe(bin)
    else:
        return builtins.bin(x)