'Applies the logical operation \'and\' between each operand\'s digits.
The operands must be both logical numbers.
>>> ExtendedContext.logical_and(Decimal(\'0\'), Decimal(\'0\'))
Decimal(\'0\')
>>> ExtendedContext.logical_and(Decimal(\'0\'), Decimal(\'1\'))
Decimal(\'0\')
>>> ExtendedContext.logical_and(Decimal(\'1\'), Decimal(\'0\'))
Decimal(\'0\')
>>> ExtendedContext.logical_and(Decimal(\'1\'), Decimal(\'1\'))
Decimal(\'1\')
>>> ExtendedContext.logical_and(Decimal(\'1100\'), Decimal(\'1010\'))
Decimal(\'1000\')
>>> ExtendedContext.logical_and(Decimal(\'1111\'), Decimal(\'10\'))
Decimal(\'10\')
>>> ExtendedContext.logical_and(110, 1101)
Decimal(\'100\')
>>> ExtendedContext.logical_and(Decimal(110), 1101)
Decimal(\'100\')
>>> ExtendedContext.logical_and(110, Decimal(1101))
Decimal(\'100\')'

def logical_and(self, a, b):

    a = _convert_other(a, raiseit=True)
    return a.logical_and(b, context=self)
