view dcrypt/misc/Bitwise.d @ 36:fc97fffd106d default tip

Added tag 0.1 for changeset 6b2c35b84186
author Thomas Dixon <reikon@reikon.us>
date Thu, 14 May 2009 17:46:46 -0400
parents 21847420b1ac
children
line wrap: on
line source

/**
 * This file is part of the dcrypt project.
 *
 * Copyright: Copyright (C) dcrypt contributors 2009. All rights reserved.
 * License:   MIT
 * Authors:   Thomas Dixon
 */

module dcrypt.misc.Bitwise;

/** Common bitwise operations */
struct Bitwise
{
    
    static uint rotateLeft(uint x, int y)
    {
        return (x << y) | (x >> (32-y));
    }
    
    static uint rotateLeft(uint x, uint y)
    {
        return (x << y) | (x >> (32u-y));
    }
    
    static ulong rotateLeft(ulong x, int y)
    {
        return (x << y) | (x >> (64-y));
    }
    
    static ulong rotateLeft(ulong x, uint y)
    {
        return (x << y) | (x >> (64u-y));
    }
    
    static uint rotateRight(uint x, int y)
    {
        return (x >> y) | (x << (32-y));  
    }
    
    static uint rotateRight(uint x, uint y)
    {
        return (x >> y) | (x << (32u-y));    
    }
    
    static ulong rotateRight(ulong x, int y)
    {
        return (x >> y) | (x << (64-y));    
    }
    
    static ulong rotateRight(ulong x, uint y)
    {
        return (x >> y) | (x << (64u-y));    
    }
}