Initial prototype.
This commit is contained in:
parent
88bd42b52e
commit
efd2b52965
|
@ -0,0 +1,24 @@
|
|||
|
||||
|
||||
class BasicRegister:
|
||||
|
||||
def __init__(self, memory: list[bool]):
|
||||
self.memory: list[bool] = memory
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f"Memory: [{', '.join([str(int(value)) for value in self.memory])}]"
|
||||
|
||||
def reverse(self):
|
||||
self.memory = [not value for value in self.memory]
|
||||
|
||||
def left_shift(self, steps_shifted: int) -> list[bool]:
|
||||
self.memory.extend([False] * steps_shifted)
|
||||
shifted_radices: list[bool] = self.memory[:steps_shifted]
|
||||
del self.memory[:steps_shifted]
|
||||
return shifted_radices
|
||||
|
||||
def right_shift(self, steps_shifted: int) -> list[bool]:
|
||||
self.memory[:0] = [False] * steps_shifted
|
||||
shifted_radices: list[bool] = self.memory[-steps_shifted:]
|
||||
del self.memory[-steps_shifted:]
|
||||
return shifted_radices
|
|
@ -0,0 +1,23 @@
|
|||
from BasicRegister import BasicRegister
|
||||
|
||||
|
||||
def get_memory(variable_name: str) -> list[bool]:
|
||||
while True:
|
||||
input_chars: list[str] = list(input(f"Enter {variable_name}: "))
|
||||
|
||||
if all(character.isnumeric() and (character == "1" or character == "0") for character in input_chars):
|
||||
return [True if character == "1" else False for character in input_chars]
|
||||
else:
|
||||
print(f"[ERROR] The {variable_name} may contain only 1-s and 0-s!")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
reg: BasicRegister = BasicRegister(get_memory("memory"))
|
||||
|
||||
print(reg)
|
||||
|
||||
print(reg.left_shift(3))
|
||||
print(reg)
|
||||
|
||||
print(reg.right_shift(3))
|
||||
print(reg)
|
Loading…
Reference in New Issue