LFSR.java


Below is the syntax highlighted version of LFSR.java from §1.4 Arrays.


/******************************************************************************
 * Compilation: javac LFSR.java
 * Execution: java LFSR n
 *
 * Simulate a LFSR for n steps and print results.
 *
 * % java LFSR 40
 * 0100110010000001100010001011101010111100
 *
 ******************************************************************************/
publicclassLFSR{
publicstaticvoidmain(String[] args){
// initial fill
boolean[] a ={
false,true,false,false,false,
false,true,false,true,true,false
};
int trials = Integer.parseInt(args[0]);// number of steps
int n = a.length;// length of register
int TAP =8;// tap position
// Simulate operation of shift register.
for(int t =0; t < trials; t++){
// Simulate one shift-register step.
boolean next =(a[n-1]^ a[TAP]);// Compute next bit.
for(int i = n-1; i >0; i--)
 a[i]= a[i-1];// Shift one position.
 a[0]= next;// Put next bit on right end.
if(next) System.out.print("1");
else System.out.print("0");
}
 System.out.println();
}
}

AltStyle によって変換されたページ (->オリジナル) /


Copyright © 2000–2022, Robert Sedgewick and Kevin Wayne.
Last updated: Thu Aug 11 10:13:44 EDT 2022.