Module refinery.units.blockwise.rotr

Expand source code Browse git
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from refinery.units.blockwise import BinaryOperation


class rotr(BinaryOperation):
    """
    Rotate the bits of each block right.
    """
    def operate(self, value, shift):
        shift %= self.fbits
        return (value >> shift) | (value << (self.fbits - shift))

    def inplace(self, value, shift):
        shift %= self.fbits
        lower = value >> shift
        value <<= self.fbits - shift
        value |= lower

Classes

class rotr (argument, bigendian=False, blocksize=None)

Rotate the bits of each block right.

Expand source code Browse git
class rotr(BinaryOperation):
    """
    Rotate the bits of each block right.
    """
    def operate(self, value, shift):
        shift %= self.fbits
        return (value >> shift) | (value << (self.fbits - shift))

    def inplace(self, value, shift):
        shift %= self.fbits
        lower = value >> shift
        value <<= self.fbits - shift
        value |= lower

Ancestors

Class variables

var required_dependencies
var optional_dependencies

Methods

def operate(self, value, shift)
Expand source code Browse git
def operate(self, value, shift):
    shift %= self.fbits
    return (value >> shift) | (value << (self.fbits - shift))
def inplace(self, value, shift)
Expand source code Browse git
def inplace(self, value, shift):
    shift %= self.fbits
    lower = value >> shift
    value <<= self.fbits - shift
    value |= lower

Inherited members