I also changed this to work in a Desktop app rather than being a Console app so you can ignore the TextArea1.VerticalScrollPosition and the DoEvents (which you should not use in a real app) as they are just there so you can see the value change in realtime. State = Bitwise.ShiftRight(state, 1) Or Bitwise.ShiftLeft(newbit, 63) This class implements an LFSR in either the Fibonacci or Galois configuration. TextArea1.VerticalScrollPosition = TextArea1.LineNumber() // Scroll to endĪpp.DoEvents // Don't do this in a real app!! TextArea1.AddText(Bitwise.BitAnd(state, 1).ToBinary(1)) As an example a 4-bit LFSR has been implemented by using Memristor Ratioed Logic (MRL) scheme with 64 CMOS devices and 64 memristors. Var state As UInt64 = Bitwise.ShiftLeft(1, 63) Or 1 Updated to use correct tap bits for 64-bit numbers (Oct 5, 2021) Var state As UInt64 = Bitwise.ShiftLeft(1, 63) Or 1 The Xojo code below ought to help you understand them better. If you’ve not used Python before, you might find all the symbols to be a bit cryptic. So we have to tweak the Python code to work with 64-bit integers, which are more commonly available and the maximum supported in Xojo. One thing about Python is that its integers are arbitrary precision unlike most other programming languages like Xojo, Java or C#. Here’s the original Python code: state = (1 > 1) ^ (state > 2) ^ (state > 7)) & 1
Pound uses Python for his example, so I thought I’d quickly convert it to Xojo.