Java Tutorials - Herong's Tutorial Examples - v8.22, by Herong Yang
rotateLeft() - Left Rotating All Bits in a Byte Array
This section provides a tutorial example on how to perform a left rotation of all bits in a byte array - rotateLeft().
If you are trying to implement DES (Data Encryption Standard) encryption algorithm, you will need to rotate bit values in bit strings. With the getBit() and setBit() methods defined above, rotating a bit string stored in a byte array becomes easy to do. Here my rotateLeft() method.
private static byte[] rotateLeft(byte[] in, int len, int step) { int numOfBytes = (len-1)/8 + 1; byte[] out = new byte[numOfBytes]; for (int i=0; i<len; i++) { int val = getBit(in,(i+step)%len); setBit(out,i,val); } return out; }
Explanations:
Table of Contents
Execution Process, Entry Point, Input and Output
Primitive Data Types and Literals
Bits, Bytes, Bitwise and Shift Operations
►Managing Bit Strings in Byte Arrays
setBit() - Storing a Bit into a Byte Array
getBit() - Retrieving a Bit from a Byte Array
►rotateLeft() - Left Rotating All Bits in a Byte Array
bitStringTest.java - Testing Program
Reference Data Types and Variables
StringBuffer - The String Buffer Class
System Properties and Runtime Object Methods
Generic Classes and Parameterized Types
Generic Methods and Type Inference
Lambda Expressions and Method References
Java Modules - Java Package Aggregation
Execution Threads and Multi-Threading Java Programs
ThreadGroup Class and "system" ThreadGroup Tree
Synchronization Technique and Synchronized Code Blocks
Deadlock Condition Example Programs
Garbage Collection and the gc() Method
Assert Statements and -ea" Option