diff --git a/src/core/operations/BytesToLong.mjs b/src/core/operations/BytesToLong.mjs
new file mode 100644
index 00000000..2c5b1262
--- /dev/null
+++ b/src/core/operations/BytesToLong.mjs
@@ -0,0 +1,52 @@
+/**
+ * @author clubby789 [github.com/clubby789]
+ * @copyright Crown Copyright 2020
+ * @license Apache-2.0
+ */
+
+import Operation from "../Operation.mjs";
+
+/* global BigInt */
+
+/**
+ * Bytes to Long Operation
+ */
+class BytesToLong extends Operation {
+
+ /**
+ * LongToBytes constructor
+ */
+ constructor() {
+ super();
+
+ this.name = "Bytes to Long";
+ this.module = "Default";
+ this.description = "Converts an array of bytes to a long integer.
e.g. Hello
becomes 310939249775
";
+ this.inputType = "string";
+ this.outputType = "string";
+ }
+
+ /**
+ * @param {string} input
+ * @returns {string}
+ */
+ run(input, args) {
+ const bytes = [];
+ let charCode;
+
+ for (let i = 0; i < input.length; ++i) {
+ charCode = input.charCodeAt(i);
+ bytes.unshift(charCode & 0xFF);
+ }
+
+ let value = BigInt(0);
+ for (let i = bytes.length - 1; i >= 0; i--) {
+ value = (value * BigInt(256)) + BigInt(bytes[i]);
+ }
+
+ return value.toString();
+ }
+
+}
+
+export default BytesToLong;
diff --git a/src/core/operations/LongToBytes.mjs b/src/core/operations/LongToBytes.mjs
new file mode 100644
index 00000000..898c5295
--- /dev/null
+++ b/src/core/operations/LongToBytes.mjs
@@ -0,0 +1,52 @@
+/**
+ * @author clubby789 [github.com/clubby789]
+ * @copyright Crown Copyright 2020
+ * @license Apache-2.0
+ */
+
+import Operation from "../Operation.mjs";
+
+/* global BigInt */
+
+/**
+ * Long to Bytes Operation
+ */
+class LongToBytes extends Operation {
+
+ /**
+ * LongToBytes constructor
+ */
+ constructor() {
+ super();
+
+ this.name = "Long to Bytes";
+ this.module = "Default";
+ this.description = "Converts a long integer to an array of bytes.
e.g. 310939249775
becomes Hello
";
+ this.inputType = "string";
+ this.outputType = "byteArray";
+ this.checks = [
+ {
+ pattern: "^[0-9]*$"
+ }
+ ];
+ }
+
+ /**
+ * @param {string} input
+ * @returns {byteArray}
+ */
+ run(input, args) {
+ const byteArray = [];
+ let long = BigInt(input.replace(/[^\d]/g, ""));
+ for (let index = 0; long > BigInt(0); index ++) {
+ const byte = long & BigInt(0xff);
+ byteArray.unshift(Number(byte));
+ long = (long - byte) / BigInt(256) ;
+ }
+
+ return byteArray;
+ }
+
+}
+
+export default LongToBytes;