summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@annapurna.annapurna.fitness>2025-07-09 16:06:10 +0200
committerroot <root@annapurna.annapurna.fitness>2025-07-09 16:06:10 +0200
commit72cb72a14dd0f64b1cd861057b61266dfc10bb76 (patch)
tree9f0988b12bbede1436583e5d9ddd40314d4d3582
initial commit
-rw-r--r--logical_operators/.DS_Storebin0 -> 6148 bytes
-rw-r--r--logical_operators/and.py18
-rw-r--r--logical_operators/not.py16
-rw-r--r--logical_operators/or.py18
-rw-r--r--logical_operators/xor.py23
5 files changed, 75 insertions, 0 deletions
diff --git a/logical_operators/.DS_Store b/logical_operators/.DS_Store
new file mode 100644
index 0000000..a98982f
--- /dev/null
+++ b/logical_operators/.DS_Store
Binary files differ
diff --git a/logical_operators/and.py b/logical_operators/and.py
new file mode 100644
index 0000000..7e6a352
--- /dev/null
+++ b/logical_operators/and.py
@@ -0,0 +1,18 @@
+from sys import argv
+
+# Read two files as byte arrays
+file1_b = bytearray(open(argv[1], 'rb').read())
+file2_b = bytearray(open(argv[2], 'rb').read())
+
+# Set the length to be the smaller one
+size = len(file1_b) if len(file1_b) < len(file2_b) else len(file2_b)
+andd_byte_array = bytearray(size)
+
+# AND between the files
+for i in range(size):
+ andd_byte_array[i] = file1_b[i] & file2_b[i]
+
+# Write the ANDd bytes to the output file
+open(argv[3], 'wb').write(andd_byte_array)
+
+print(f"[*] {argv[1]} AND {argv[2]}\n[*] Saved to \033[1;33m{argv[3]}\033[1;m.")
diff --git a/logical_operators/not.py b/logical_operators/not.py
new file mode 100644
index 0000000..e010561
--- /dev/null
+++ b/logical_operators/not.py
@@ -0,0 +1,16 @@
+from sys import argv
+
+# Read two file as byte array
+file_b = bytearray(open(argv[1], 'rb').read())
+
+size = len(file_b)
+notd_byte_array = bytearray(size)
+
+# NOT the file
+for i in range(size):
+ notd_byte_array[i] = file_b[i] ^ 255
+
+# Write the NOTd bytes to the output file
+open(argv[2], 'wb').write(notd_byte_array)
+
+print (f"[*] NOT {argv[1]}\n[*] Saved to \033[1;33m{argv[2]}\033[1;m.")
diff --git a/logical_operators/or.py b/logical_operators/or.py
new file mode 100644
index 0000000..acc8c62
--- /dev/null
+++ b/logical_operators/or.py
@@ -0,0 +1,18 @@
+from sys import argv
+
+# Read two files as byte arrays
+file1_b = bytearray(open(argv[1], 'rb').read())
+file2_b = bytearray(open(argv[2], 'rb').read())
+
+# Set the length to be the smaller one
+size = len(file1_b) if len(file1_b) < len(file2_b) else len(file2_b)
+ord_byte_array = bytearray(size)
+
+# OR between the files
+for i in range(size):
+ ord_byte_array[i] = file1_b[i] | file2_b[i]
+
+# Write the ANDd bytes to the output file
+open(argv[3], 'wb').write(ord_byte_array)
+
+print (f"[*] {argv[1]} OR {argv[2]}\n[*] Saved to \033[1;33m{argv[3]}\033[1;m.")
diff --git a/logical_operators/xor.py b/logical_operators/xor.py
new file mode 100644
index 0000000..17bd630
--- /dev/null
+++ b/logical_operators/xor.py
@@ -0,0 +1,23 @@
+from sys import argv
+"""
+0 + 0 -> 1
+1 + 1 -> 1
+0 + 1 -> 0
+1 + 0 -> 0
+"""
+# Read two files as byte arrays
+file1_b = bytearray(open(argv[1], 'rb').read())
+file2_b = bytearray(open(argv[2], 'rb').read())
+
+# Set the length to be the smaller one
+size = min(len(file1_b), len(file2_b))
+xord_byte_array = bytearray(size)
+
+# XOR between the files
+for i in range(size):
+ xord_byte_array[i] = file1_b[i] ^ file2_b[i]
+
+# Write the XORd bytes to the output file
+open(argv[3], 'wb').write(xord_byte_array)
+
+print(f'[*] {argv[1]} XOR {argv[2]}\n[*] Saved to \033[1;33m{argv[3]}\033[1;m.') \ No newline at end of file