summaryrefslogtreecommitdiff
path: root/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension')
-rw-r--r--src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/common.h51
-rw-r--r--src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/datawidth.cpp65
-rw-r--r--src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/datawidth.h87
-rw-r--r--src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/golden/promote_extension.log4099
-rw-r--r--src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/main.cpp77
-rw-r--r--src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/promote_extension.f3
-rw-r--r--src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/stimgen.cpp69
-rw-r--r--src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/stimgen.h77
8 files changed, 4528 insertions, 0 deletions
diff --git a/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/common.h b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/common.h
new file mode 100644
index 000000000..f5bf2658c
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/common.h
@@ -0,0 +1,51 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ common.h --
+
+ Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+#ifndef COMMON_H
+#define COMMON_H
+
+#include "systemc.h"
+
+typedef sc_bv<4> bool_vector4;
+typedef sc_bv<6> bool_vector6;
+typedef sc_bv<9> bool_vector9;
+
+typedef sc_signal<bool_vector4> signal_bool_vector4;
+typedef sc_signal<bool_vector6> signal_bool_vector6;
+typedef sc_signal<bool_vector9> signal_bool_vector9;
+
+#endif
diff --git a/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/datawidth.cpp b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/datawidth.cpp
new file mode 100644
index 000000000..c3c12c90a
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/datawidth.cpp
@@ -0,0 +1,65 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ datawidth.cpp --
+
+ Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+ /*******************************************/
+ /* Implementation Filename: datawidth.cc */
+ /*******************************************/
+
+#include "datawidth.h"
+
+void
+datawidth::entry()
+{
+ bool_vector4 tmp_a;
+ bool_vector6 tmp_b;
+ bool_vector9 tmp_result;
+
+ while (true) {
+
+ // HANDSHAKING
+ do { wait(); } while (ready != 1);
+
+ // COMPUTATION
+ tmp_a = in1.read();
+ tmp_b = in2.read();
+ tmp_result = tmp_a.to_int() + tmp_b.to_int();
+
+ // WRITE OUTPUT
+ result.write(tmp_result); // result = in1 + in2
+ wait();
+ }
+}
diff --git a/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/datawidth.h b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/datawidth.h
new file mode 100644
index 000000000..284757aeb
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/datawidth.h
@@ -0,0 +1,87 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ datawidth.h --
+
+ Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+ /**************************************/
+ /* Interface Filename: datawidth.h */
+ /**************************************/
+
+#include "common.h"
+
+SC_MODULE( datawidth )
+{
+ SC_HAS_PROCESS( datawidth );
+
+ sc_in_clk clk;
+
+ // Inputs
+ const signal_bool_vector4& in1;
+ const signal_bool_vector6& in2;
+ const sc_signal<bool>& ready;
+ // Outputs
+ signal_bool_vector9& result;
+ // Parameters
+ const int in1_width;
+ const int in2_width;
+ const int result_width;
+
+ // Constructor
+ datawidth (sc_module_name NAME,
+ sc_clock& TICK,
+ const signal_bool_vector4& IN1,
+ const signal_bool_vector6& IN2,
+ const sc_signal<bool>& READY,
+ signal_bool_vector9& RESULT,
+ const int IN1_WIDTH,
+ const int IN2_WIDTH,
+ const int RESULT_WIDTH )
+
+ :
+ in1 (IN1),
+ in2 (IN2),
+ ready (READY),
+ result (RESULT),
+ in1_width (IN1_WIDTH),
+ in2_width (IN2_WIDTH),
+ result_width (RESULT_WIDTH)
+
+ {
+ clk (TICK);
+ SC_CTHREAD( entry, clk.pos() );
+ }
+
+ void entry();
+};
diff --git a/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/golden/promote_extension.log b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/golden/promote_extension.log
new file mode 100644
index 000000000..3290f802a
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/golden/promote_extension.log
@@ -0,0 +1,4099 @@
+SystemC Simulation
+0 + 0 = 0 (000000000)
+0 + 1 = 1 (000000001)
+0 + 2 = 2 (000000010)
+0 + 3 = 3 (000000011)
+0 + 4 = 4 (000000100)
+0 + 5 = 5 (000000101)
+0 + 6 = 6 (000000110)
+0 + 7 = 7 (000000111)
+0 + 8 = 8 (000001000)
+0 + 9 = 9 (000001001)
+0 + 10 = 10 (000001010)
+0 + 11 = 11 (000001011)
+0 + 12 = 12 (000001100)
+0 + 13 = 13 (000001101)
+0 + 14 = 14 (000001110)
+0 + 15 = 15 (000001111)
+0 + 16 = 16 (000010000)
+0 + 17 = 17 (000010001)
+0 + 18 = 18 (000010010)
+0 + 19 = 19 (000010011)
+0 + 20 = 20 (000010100)
+0 + 21 = 21 (000010101)
+0 + 22 = 22 (000010110)
+0 + 23 = 23 (000010111)
+0 + 24 = 24 (000011000)
+0 + 25 = 25 (000011001)
+0 + 26 = 26 (000011010)
+0 + 27 = 27 (000011011)
+0 + 28 = 28 (000011100)
+0 + 29 = 29 (000011101)
+0 + 30 = 30 (000011110)
+0 + 31 = 31 (000011111)
+0 + -32 = -32 (111100000)
+0 + -31 = -31 (111100001)
+0 + -30 = -30 (111100010)
+0 + -29 = -29 (111100011)
+0 + -28 = -28 (111100100)
+0 + -27 = -27 (111100101)
+0 + -26 = -26 (111100110)
+0 + -25 = -25 (111100111)
+0 + -24 = -24 (111101000)
+0 + -23 = -23 (111101001)
+0 + -22 = -22 (111101010)
+0 + -21 = -21 (111101011)
+0 + -20 = -20 (111101100)
+0 + -19 = -19 (111101101)
+0 + -18 = -18 (111101110)
+0 + -17 = -17 (111101111)
+0 + -16 = -16 (111110000)
+0 + -15 = -15 (111110001)
+0 + -14 = -14 (111110010)
+0 + -13 = -13 (111110011)
+0 + -12 = -12 (111110100)
+0 + -11 = -11 (111110101)
+0 + -10 = -10 (111110110)
+0 + -9 = -9 (111110111)
+0 + -8 = -8 (111111000)
+0 + -7 = -7 (111111001)
+0 + -6 = -6 (111111010)
+0 + -5 = -5 (111111011)
+0 + -4 = -4 (111111100)
+0 + -3 = -3 (111111101)
+0 + -2 = -2 (111111110)
+0 + -1 = -1 (111111111)
+1 + 0 = 1 (000000001)
+1 + 1 = 2 (000000010)
+1 + 2 = 3 (000000011)
+1 + 3 = 4 (000000100)
+1 + 4 = 5 (000000101)
+1 + 5 = 6 (000000110)
+1 + 6 = 7 (000000111)
+1 + 7 = 8 (000001000)
+1 + 8 = 9 (000001001)
+1 + 9 = 10 (000001010)
+1 + 10 = 11 (000001011)
+1 + 11 = 12 (000001100)
+1 + 12 = 13 (000001101)
+1 + 13 = 14 (000001110)
+1 + 14 = 15 (000001111)
+1 + 15 = 16 (000010000)
+1 + 16 = 17 (000010001)
+1 + 17 = 18 (000010010)
+1 + 18 = 19 (000010011)
+1 + 19 = 20 (000010100)
+1 + 20 = 21 (000010101)
+1 + 21 = 22 (000010110)
+1 + 22 = 23 (000010111)
+1 + 23 = 24 (000011000)
+1 + 24 = 25 (000011001)
+1 + 25 = 26 (000011010)
+1 + 26 = 27 (000011011)
+1 + 27 = 28 (000011100)
+1 + 28 = 29 (000011101)
+1 + 29 = 30 (000011110)
+1 + 30 = 31 (000011111)
+1 + 31 = 32 (000100000)
+1 + -32 = -31 (111100001)
+1 + -31 = -30 (111100010)
+1 + -30 = -29 (111100011)
+1 + -29 = -28 (111100100)
+1 + -28 = -27 (111100101)
+1 + -27 = -26 (111100110)
+1 + -26 = -25 (111100111)
+1 + -25 = -24 (111101000)
+1 + -24 = -23 (111101001)
+1 + -23 = -22 (111101010)
+1 + -22 = -21 (111101011)
+1 + -21 = -20 (111101100)
+1 + -20 = -19 (111101101)
+1 + -19 = -18 (111101110)
+1 + -18 = -17 (111101111)
+1 + -17 = -16 (111110000)
+1 + -16 = -15 (111110001)
+1 + -15 = -14 (111110010)
+1 + -14 = -13 (111110011)
+1 + -13 = -12 (111110100)
+1 + -12 = -11 (111110101)
+1 + -11 = -10 (111110110)
+1 + -10 = -9 (111110111)
+1 + -9 = -8 (111111000)
+1 + -8 = -7 (111111001)
+1 + -7 = -6 (111111010)
+1 + -6 = -5 (111111011)
+1 + -5 = -4 (111111100)
+1 + -4 = -3 (111111101)
+1 + -3 = -2 (111111110)
+1 + -2 = -1 (111111111)
+1 + -1 = 0 (000000000)
+2 + 0 = 2 (000000010)
+2 + 1 = 3 (000000011)
+2 + 2 = 4 (000000100)
+2 + 3 = 5 (000000101)
+2 + 4 = 6 (000000110)
+2 + 5 = 7 (000000111)
+2 + 6 = 8 (000001000)
+2 + 7 = 9 (000001001)
+2 + 8 = 10 (000001010)
+2 + 9 = 11 (000001011)
+2 + 10 = 12 (000001100)
+2 + 11 = 13 (000001101)
+2 + 12 = 14 (000001110)
+2 + 13 = 15 (000001111)
+2 + 14 = 16 (000010000)
+2 + 15 = 17 (000010001)
+2 + 16 = 18 (000010010)
+2 + 17 = 19 (000010011)
+2 + 18 = 20 (000010100)
+2 + 19 = 21 (000010101)
+2 + 20 = 22 (000010110)
+2 + 21 = 23 (000010111)
+2 + 22 = 24 (000011000)
+2 + 23 = 25 (000011001)
+2 + 24 = 26 (000011010)
+2 + 25 = 27 (000011011)
+2 + 26 = 28 (000011100)
+2 + 27 = 29 (000011101)
+2 + 28 = 30 (000011110)
+2 + 29 = 31 (000011111)
+2 + 30 = 32 (000100000)
+2 + 31 = 33 (000100001)
+2 + -32 = -30 (111100010)
+2 + -31 = -29 (111100011)
+2 + -30 = -28 (111100100)
+2 + -29 = -27 (111100101)
+2 + -28 = -26 (111100110)
+2 + -27 = -25 (111100111)
+2 + -26 = -24 (111101000)
+2 + -25 = -23 (111101001)
+2 + -24 = -22 (111101010)
+2 + -23 = -21 (111101011)
+2 + -22 = -20 (111101100)
+2 + -21 = -19 (111101101)
+2 + -20 = -18 (111101110)
+2 + -19 = -17 (111101111)
+2 + -18 = -16 (111110000)
+2 + -17 = -15 (111110001)
+2 + -16 = -14 (111110010)
+2 + -15 = -13 (111110011)
+2 + -14 = -12 (111110100)
+2 + -13 = -11 (111110101)
+2 + -12 = -10 (111110110)
+2 + -11 = -9 (111110111)
+2 + -10 = -8 (111111000)
+2 + -9 = -7 (111111001)
+2 + -8 = -6 (111111010)
+2 + -7 = -5 (111111011)
+2 + -6 = -4 (111111100)
+2 + -5 = -3 (111111101)
+2 + -4 = -2 (111111110)
+2 + -3 = -1 (111111111)
+2 + -2 = 0 (000000000)
+2 + -1 = 1 (000000001)
+3 + 0 = 3 (000000011)
+3 + 1 = 4 (000000100)
+3 + 2 = 5 (000000101)
+3 + 3 = 6 (000000110)
+3 + 4 = 7 (000000111)
+3 + 5 = 8 (000001000)
+3 + 6 = 9 (000001001)
+3 + 7 = 10 (000001010)
+3 + 8 = 11 (000001011)
+3 + 9 = 12 (000001100)
+3 + 10 = 13 (000001101)
+3 + 11 = 14 (000001110)
+3 + 12 = 15 (000001111)
+3 + 13 = 16 (000010000)
+3 + 14 = 17 (000010001)
+3 + 15 = 18 (000010010)
+3 + 16 = 19 (000010011)
+3 + 17 = 20 (000010100)
+3 + 18 = 21 (000010101)
+3 + 19 = 22 (000010110)
+3 + 20 = 23 (000010111)
+3 + 21 = 24 (000011000)
+3 + 22 = 25 (000011001)
+3 + 23 = 26 (000011010)
+3 + 24 = 27 (000011011)
+3 + 25 = 28 (000011100)
+3 + 26 = 29 (000011101)
+3 + 27 = 30 (000011110)
+3 + 28 = 31 (000011111)
+3 + 29 = 32 (000100000)
+3 + 30 = 33 (000100001)
+3 + 31 = 34 (000100010)
+3 + -32 = -29 (111100011)
+3 + -31 = -28 (111100100)
+3 + -30 = -27 (111100101)
+3 + -29 = -26 (111100110)
+3 + -28 = -25 (111100111)
+3 + -27 = -24 (111101000)
+3 + -26 = -23 (111101001)
+3 + -25 = -22 (111101010)
+3 + -24 = -21 (111101011)
+3 + -23 = -20 (111101100)
+3 + -22 = -19 (111101101)
+3 + -21 = -18 (111101110)
+3 + -20 = -17 (111101111)
+3 + -19 = -16 (111110000)
+3 + -18 = -15 (111110001)
+3 + -17 = -14 (111110010)
+3 + -16 = -13 (111110011)
+3 + -15 = -12 (111110100)
+3 + -14 = -11 (111110101)
+3 + -13 = -10 (111110110)
+3 + -12 = -9 (111110111)
+3 + -11 = -8 (111111000)
+3 + -10 = -7 (111111001)
+3 + -9 = -6 (111111010)
+3 + -8 = -5 (111111011)
+3 + -7 = -4 (111111100)
+3 + -6 = -3 (111111101)
+3 + -5 = -2 (111111110)
+3 + -4 = -1 (111111111)
+3 + -3 = 0 (000000000)
+3 + -2 = 1 (000000001)
+3 + -1 = 2 (000000010)
+4 + 0 = 4 (000000100)
+4 + 1 = 5 (000000101)
+4 + 2 = 6 (000000110)
+4 + 3 = 7 (000000111)
+4 + 4 = 8 (000001000)
+4 + 5 = 9 (000001001)
+4 + 6 = 10 (000001010)
+4 + 7 = 11 (000001011)
+4 + 8 = 12 (000001100)
+4 + 9 = 13 (000001101)
+4 + 10 = 14 (000001110)
+4 + 11 = 15 (000001111)
+4 + 12 = 16 (000010000)
+4 + 13 = 17 (000010001)
+4 + 14 = 18 (000010010)
+4 + 15 = 19 (000010011)
+4 + 16 = 20 (000010100)
+4 + 17 = 21 (000010101)
+4 + 18 = 22 (000010110)
+4 + 19 = 23 (000010111)
+4 + 20 = 24 (000011000)
+4 + 21 = 25 (000011001)
+4 + 22 = 26 (000011010)
+4 + 23 = 27 (000011011)
+4 + 24 = 28 (000011100)
+4 + 25 = 29 (000011101)
+4 + 26 = 30 (000011110)
+4 + 27 = 31 (000011111)
+4 + 28 = 32 (000100000)
+4 + 29 = 33 (000100001)
+4 + 30 = 34 (000100010)
+4 + 31 = 35 (000100011)
+4 + -32 = -28 (111100100)
+4 + -31 = -27 (111100101)
+4 + -30 = -26 (111100110)
+4 + -29 = -25 (111100111)
+4 + -28 = -24 (111101000)
+4 + -27 = -23 (111101001)
+4 + -26 = -22 (111101010)
+4 + -25 = -21 (111101011)
+4 + -24 = -20 (111101100)
+4 + -23 = -19 (111101101)
+4 + -22 = -18 (111101110)
+4 + -21 = -17 (111101111)
+4 + -20 = -16 (111110000)
+4 + -19 = -15 (111110001)
+4 + -18 = -14 (111110010)
+4 + -17 = -13 (111110011)
+4 + -16 = -12 (111110100)
+4 + -15 = -11 (111110101)
+4 + -14 = -10 (111110110)
+4 + -13 = -9 (111110111)
+4 + -12 = -8 (111111000)
+4 + -11 = -7 (111111001)
+4 + -10 = -6 (111111010)
+4 + -9 = -5 (111111011)
+4 + -8 = -4 (111111100)
+4 + -7 = -3 (111111101)
+4 + -6 = -2 (111111110)
+4 + -5 = -1 (111111111)
+4 + -4 = 0 (000000000)
+4 + -3 = 1 (000000001)
+4 + -2 = 2 (000000010)
+4 + -1 = 3 (000000011)
+5 + 0 = 5 (000000101)
+5 + 1 = 6 (000000110)
+5 + 2 = 7 (000000111)
+5 + 3 = 8 (000001000)
+5 + 4 = 9 (000001001)
+5 + 5 = 10 (000001010)
+5 + 6 = 11 (000001011)
+5 + 7 = 12 (000001100)
+5 + 8 = 13 (000001101)
+5 + 9 = 14 (000001110)
+5 + 10 = 15 (000001111)
+5 + 11 = 16 (000010000)
+5 + 12 = 17 (000010001)
+5 + 13 = 18 (000010010)
+5 + 14 = 19 (000010011)
+5 + 15 = 20 (000010100)
+5 + 16 = 21 (000010101)
+5 + 17 = 22 (000010110)
+5 + 18 = 23 (000010111)
+5 + 19 = 24 (000011000)
+5 + 20 = 25 (000011001)
+5 + 21 = 26 (000011010)
+5 + 22 = 27 (000011011)
+5 + 23 = 28 (000011100)
+5 + 24 = 29 (000011101)
+5 + 25 = 30 (000011110)
+5 + 26 = 31 (000011111)
+5 + 27 = 32 (000100000)
+5 + 28 = 33 (000100001)
+5 + 29 = 34 (000100010)
+5 + 30 = 35 (000100011)
+5 + 31 = 36 (000100100)
+5 + -32 = -27 (111100101)
+5 + -31 = -26 (111100110)
+5 + -30 = -25 (111100111)
+5 + -29 = -24 (111101000)
+5 + -28 = -23 (111101001)
+5 + -27 = -22 (111101010)
+5 + -26 = -21 (111101011)
+5 + -25 = -20 (111101100)
+5 + -24 = -19 (111101101)
+5 + -23 = -18 (111101110)
+5 + -22 = -17 (111101111)
+5 + -21 = -16 (111110000)
+5 + -20 = -15 (111110001)
+5 + -19 = -14 (111110010)
+5 + -18 = -13 (111110011)
+5 + -17 = -12 (111110100)
+5 + -16 = -11 (111110101)
+5 + -15 = -10 (111110110)
+5 + -14 = -9 (111110111)
+5 + -13 = -8 (111111000)
+5 + -12 = -7 (111111001)
+5 + -11 = -6 (111111010)
+5 + -10 = -5 (111111011)
+5 + -9 = -4 (111111100)
+5 + -8 = -3 (111111101)
+5 + -7 = -2 (111111110)
+5 + -6 = -1 (111111111)
+5 + -5 = 0 (000000000)
+5 + -4 = 1 (000000001)
+5 + -3 = 2 (000000010)
+5 + -2 = 3 (000000011)
+5 + -1 = 4 (000000100)
+6 + 0 = 6 (000000110)
+6 + 1 = 7 (000000111)
+6 + 2 = 8 (000001000)
+6 + 3 = 9 (000001001)
+6 + 4 = 10 (000001010)
+6 + 5 = 11 (000001011)
+6 + 6 = 12 (000001100)
+6 + 7 = 13 (000001101)
+6 + 8 = 14 (000001110)
+6 + 9 = 15 (000001111)
+6 + 10 = 16 (000010000)
+6 + 11 = 17 (000010001)
+6 + 12 = 18 (000010010)
+6 + 13 = 19 (000010011)
+6 + 14 = 20 (000010100)
+6 + 15 = 21 (000010101)
+6 + 16 = 22 (000010110)
+6 + 17 = 23 (000010111)
+6 + 18 = 24 (000011000)
+6 + 19 = 25 (000011001)
+6 + 20 = 26 (000011010)
+6 + 21 = 27 (000011011)
+6 + 22 = 28 (000011100)
+6 + 23 = 29 (000011101)
+6 + 24 = 30 (000011110)
+6 + 25 = 31 (000011111)
+6 + 26 = 32 (000100000)
+6 + 27 = 33 (000100001)
+6 + 28 = 34 (000100010)
+6 + 29 = 35 (000100011)
+6 + 30 = 36 (000100100)
+6 + 31 = 37 (000100101)
+6 + -32 = -26 (111100110)
+6 + -31 = -25 (111100111)
+6 + -30 = -24 (111101000)
+6 + -29 = -23 (111101001)
+6 + -28 = -22 (111101010)
+6 + -27 = -21 (111101011)
+6 + -26 = -20 (111101100)
+6 + -25 = -19 (111101101)
+6 + -24 = -18 (111101110)
+6 + -23 = -17 (111101111)
+6 + -22 = -16 (111110000)
+6 + -21 = -15 (111110001)
+6 + -20 = -14 (111110010)
+6 + -19 = -13 (111110011)
+6 + -18 = -12 (111110100)
+6 + -17 = -11 (111110101)
+6 + -16 = -10 (111110110)
+6 + -15 = -9 (111110111)
+6 + -14 = -8 (111111000)
+6 + -13 = -7 (111111001)
+6 + -12 = -6 (111111010)
+6 + -11 = -5 (111111011)
+6 + -10 = -4 (111111100)
+6 + -9 = -3 (111111101)
+6 + -8 = -2 (111111110)
+6 + -7 = -1 (111111111)
+6 + -6 = 0 (000000000)
+6 + -5 = 1 (000000001)
+6 + -4 = 2 (000000010)
+6 + -3 = 3 (000000011)
+6 + -2 = 4 (000000100)
+6 + -1 = 5 (000000101)
+7 + 0 = 7 (000000111)
+7 + 1 = 8 (000001000)
+7 + 2 = 9 (000001001)
+7 + 3 = 10 (000001010)
+7 + 4 = 11 (000001011)
+7 + 5 = 12 (000001100)
+7 + 6 = 13 (000001101)
+7 + 7 = 14 (000001110)
+7 + 8 = 15 (000001111)
+7 + 9 = 16 (000010000)
+7 + 10 = 17 (000010001)
+7 + 11 = 18 (000010010)
+7 + 12 = 19 (000010011)
+7 + 13 = 20 (000010100)
+7 + 14 = 21 (000010101)
+7 + 15 = 22 (000010110)
+7 + 16 = 23 (000010111)
+7 + 17 = 24 (000011000)
+7 + 18 = 25 (000011001)
+7 + 19 = 26 (000011010)
+7 + 20 = 27 (000011011)
+7 + 21 = 28 (000011100)
+7 + 22 = 29 (000011101)
+7 + 23 = 30 (000011110)
+7 + 24 = 31 (000011111)
+7 + 25 = 32 (000100000)
+7 + 26 = 33 (000100001)
+7 + 27 = 34 (000100010)
+7 + 28 = 35 (000100011)
+7 + 29 = 36 (000100100)
+7 + 30 = 37 (000100101)
+7 + 31 = 38 (000100110)
+7 + -32 = -25 (111100111)
+7 + -31 = -24 (111101000)
+7 + -30 = -23 (111101001)
+7 + -29 = -22 (111101010)
+7 + -28 = -21 (111101011)
+7 + -27 = -20 (111101100)
+7 + -26 = -19 (111101101)
+7 + -25 = -18 (111101110)
+7 + -24 = -17 (111101111)
+7 + -23 = -16 (111110000)
+7 + -22 = -15 (111110001)
+7 + -21 = -14 (111110010)
+7 + -20 = -13 (111110011)
+7 + -19 = -12 (111110100)
+7 + -18 = -11 (111110101)
+7 + -17 = -10 (111110110)
+7 + -16 = -9 (111110111)
+7 + -15 = -8 (111111000)
+7 + -14 = -7 (111111001)
+7 + -13 = -6 (111111010)
+7 + -12 = -5 (111111011)
+7 + -11 = -4 (111111100)
+7 + -10 = -3 (111111101)
+7 + -9 = -2 (111111110)
+7 + -8 = -1 (111111111)
+7 + -7 = 0 (000000000)
+7 + -6 = 1 (000000001)
+7 + -5 = 2 (000000010)
+7 + -4 = 3 (000000011)
+7 + -3 = 4 (000000100)
+7 + -2 = 5 (000000101)
+7 + -1 = 6 (000000110)
+-8 + 0 = -8 (111111000)
+-8 + 1 = -7 (111111001)
+-8 + 2 = -6 (111111010)
+-8 + 3 = -5 (111111011)
+-8 + 4 = -4 (111111100)
+-8 + 5 = -3 (111111101)
+-8 + 6 = -2 (111111110)
+-8 + 7 = -1 (111111111)
+-8 + 8 = 0 (000000000)
+-8 + 9 = 1 (000000001)
+-8 + 10 = 2 (000000010)
+-8 + 11 = 3 (000000011)
+-8 + 12 = 4 (000000100)
+-8 + 13 = 5 (000000101)
+-8 + 14 = 6 (000000110)
+-8 + 15 = 7 (000000111)
+-8 + 16 = 8 (000001000)
+-8 + 17 = 9 (000001001)
+-8 + 18 = 10 (000001010)
+-8 + 19 = 11 (000001011)
+-8 + 20 = 12 (000001100)
+-8 + 21 = 13 (000001101)
+-8 + 22 = 14 (000001110)
+-8 + 23 = 15 (000001111)
+-8 + 24 = 16 (000010000)
+-8 + 25 = 17 (000010001)
+-8 + 26 = 18 (000010010)
+-8 + 27 = 19 (000010011)
+-8 + 28 = 20 (000010100)
+-8 + 29 = 21 (000010101)
+-8 + 30 = 22 (000010110)
+-8 + 31 = 23 (000010111)
+-8 + -32 = -40 (111011000)
+-8 + -31 = -39 (111011001)
+-8 + -30 = -38 (111011010)
+-8 + -29 = -37 (111011011)
+-8 + -28 = -36 (111011100)
+-8 + -27 = -35 (111011101)
+-8 + -26 = -34 (111011110)
+-8 + -25 = -33 (111011111)
+-8 + -24 = -32 (111100000)
+-8 + -23 = -31 (111100001)
+-8 + -22 = -30 (111100010)
+-8 + -21 = -29 (111100011)
+-8 + -20 = -28 (111100100)
+-8 + -19 = -27 (111100101)
+-8 + -18 = -26 (111100110)
+-8 + -17 = -25 (111100111)
+-8 + -16 = -24 (111101000)
+-8 + -15 = -23 (111101001)
+-8 + -14 = -22 (111101010)
+-8 + -13 = -21 (111101011)
+-8 + -12 = -20 (111101100)
+-8 + -11 = -19 (111101101)
+-8 + -10 = -18 (111101110)
+-8 + -9 = -17 (111101111)
+-8 + -8 = -16 (111110000)
+-8 + -7 = -15 (111110001)
+-8 + -6 = -14 (111110010)
+-8 + -5 = -13 (111110011)
+-8 + -4 = -12 (111110100)
+-8 + -3 = -11 (111110101)
+-8 + -2 = -10 (111110110)
+-8 + -1 = -9 (111110111)
+-7 + 0 = -7 (111111001)
+-7 + 1 = -6 (111111010)
+-7 + 2 = -5 (111111011)
+-7 + 3 = -4 (111111100)
+-7 + 4 = -3 (111111101)
+-7 + 5 = -2 (111111110)
+-7 + 6 = -1 (111111111)
+-7 + 7 = 0 (000000000)
+-7 + 8 = 1 (000000001)
+-7 + 9 = 2 (000000010)
+-7 + 10 = 3 (000000011)
+-7 + 11 = 4 (000000100)
+-7 + 12 = 5 (000000101)
+-7 + 13 = 6 (000000110)
+-7 + 14 = 7 (000000111)
+-7 + 15 = 8 (000001000)
+-7 + 16 = 9 (000001001)
+-7 + 17 = 10 (000001010)
+-7 + 18 = 11 (000001011)
+-7 + 19 = 12 (000001100)
+-7 + 20 = 13 (000001101)
+-7 + 21 = 14 (000001110)
+-7 + 22 = 15 (000001111)
+-7 + 23 = 16 (000010000)
+-7 + 24 = 17 (000010001)
+-7 + 25 = 18 (000010010)
+-7 + 26 = 19 (000010011)
+-7 + 27 = 20 (000010100)
+-7 + 28 = 21 (000010101)
+-7 + 29 = 22 (000010110)
+-7 + 30 = 23 (000010111)
+-7 + 31 = 24 (000011000)
+-7 + -32 = -39 (111011001)
+-7 + -31 = -38 (111011010)
+-7 + -30 = -37 (111011011)
+-7 + -29 = -36 (111011100)
+-7 + -28 = -35 (111011101)
+-7 + -27 = -34 (111011110)
+-7 + -26 = -33 (111011111)
+-7 + -25 = -32 (111100000)
+-7 + -24 = -31 (111100001)
+-7 + -23 = -30 (111100010)
+-7 + -22 = -29 (111100011)
+-7 + -21 = -28 (111100100)
+-7 + -20 = -27 (111100101)
+-7 + -19 = -26 (111100110)
+-7 + -18 = -25 (111100111)
+-7 + -17 = -24 (111101000)
+-7 + -16 = -23 (111101001)
+-7 + -15 = -22 (111101010)
+-7 + -14 = -21 (111101011)
+-7 + -13 = -20 (111101100)
+-7 + -12 = -19 (111101101)
+-7 + -11 = -18 (111101110)
+-7 + -10 = -17 (111101111)
+-7 + -9 = -16 (111110000)
+-7 + -8 = -15 (111110001)
+-7 + -7 = -14 (111110010)
+-7 + -6 = -13 (111110011)
+-7 + -5 = -12 (111110100)
+-7 + -4 = -11 (111110101)
+-7 + -3 = -10 (111110110)
+-7 + -2 = -9 (111110111)
+-7 + -1 = -8 (111111000)
+-6 + 0 = -6 (111111010)
+-6 + 1 = -5 (111111011)
+-6 + 2 = -4 (111111100)
+-6 + 3 = -3 (111111101)
+-6 + 4 = -2 (111111110)
+-6 + 5 = -1 (111111111)
+-6 + 6 = 0 (000000000)
+-6 + 7 = 1 (000000001)
+-6 + 8 = 2 (000000010)
+-6 + 9 = 3 (000000011)
+-6 + 10 = 4 (000000100)
+-6 + 11 = 5 (000000101)
+-6 + 12 = 6 (000000110)
+-6 + 13 = 7 (000000111)
+-6 + 14 = 8 (000001000)
+-6 + 15 = 9 (000001001)
+-6 + 16 = 10 (000001010)
+-6 + 17 = 11 (000001011)
+-6 + 18 = 12 (000001100)
+-6 + 19 = 13 (000001101)
+-6 + 20 = 14 (000001110)
+-6 + 21 = 15 (000001111)
+-6 + 22 = 16 (000010000)
+-6 + 23 = 17 (000010001)
+-6 + 24 = 18 (000010010)
+-6 + 25 = 19 (000010011)
+-6 + 26 = 20 (000010100)
+-6 + 27 = 21 (000010101)
+-6 + 28 = 22 (000010110)
+-6 + 29 = 23 (000010111)
+-6 + 30 = 24 (000011000)
+-6 + 31 = 25 (000011001)
+-6 + -32 = -38 (111011010)
+-6 + -31 = -37 (111011011)
+-6 + -30 = -36 (111011100)
+-6 + -29 = -35 (111011101)
+-6 + -28 = -34 (111011110)
+-6 + -27 = -33 (111011111)
+-6 + -26 = -32 (111100000)
+-6 + -25 = -31 (111100001)
+-6 + -24 = -30 (111100010)
+-6 + -23 = -29 (111100011)
+-6 + -22 = -28 (111100100)
+-6 + -21 = -27 (111100101)
+-6 + -20 = -26 (111100110)
+-6 + -19 = -25 (111100111)
+-6 + -18 = -24 (111101000)
+-6 + -17 = -23 (111101001)
+-6 + -16 = -22 (111101010)
+-6 + -15 = -21 (111101011)
+-6 + -14 = -20 (111101100)
+-6 + -13 = -19 (111101101)
+-6 + -12 = -18 (111101110)
+-6 + -11 = -17 (111101111)
+-6 + -10 = -16 (111110000)
+-6 + -9 = -15 (111110001)
+-6 + -8 = -14 (111110010)
+-6 + -7 = -13 (111110011)
+-6 + -6 = -12 (111110100)
+-6 + -5 = -11 (111110101)
+-6 + -4 = -10 (111110110)
+-6 + -3 = -9 (111110111)
+-6 + -2 = -8 (111111000)
+-6 + -1 = -7 (111111001)
+-5 + 0 = -5 (111111011)
+-5 + 1 = -4 (111111100)
+-5 + 2 = -3 (111111101)
+-5 + 3 = -2 (111111110)
+-5 + 4 = -1 (111111111)
+-5 + 5 = 0 (000000000)
+-5 + 6 = 1 (000000001)
+-5 + 7 = 2 (000000010)
+-5 + 8 = 3 (000000011)
+-5 + 9 = 4 (000000100)
+-5 + 10 = 5 (000000101)
+-5 + 11 = 6 (000000110)
+-5 + 12 = 7 (000000111)
+-5 + 13 = 8 (000001000)
+-5 + 14 = 9 (000001001)
+-5 + 15 = 10 (000001010)
+-5 + 16 = 11 (000001011)
+-5 + 17 = 12 (000001100)
+-5 + 18 = 13 (000001101)
+-5 + 19 = 14 (000001110)
+-5 + 20 = 15 (000001111)
+-5 + 21 = 16 (000010000)
+-5 + 22 = 17 (000010001)
+-5 + 23 = 18 (000010010)
+-5 + 24 = 19 (000010011)
+-5 + 25 = 20 (000010100)
+-5 + 26 = 21 (000010101)
+-5 + 27 = 22 (000010110)
+-5 + 28 = 23 (000010111)
+-5 + 29 = 24 (000011000)
+-5 + 30 = 25 (000011001)
+-5 + 31 = 26 (000011010)
+-5 + -32 = -37 (111011011)
+-5 + -31 = -36 (111011100)
+-5 + -30 = -35 (111011101)
+-5 + -29 = -34 (111011110)
+-5 + -28 = -33 (111011111)
+-5 + -27 = -32 (111100000)
+-5 + -26 = -31 (111100001)
+-5 + -25 = -30 (111100010)
+-5 + -24 = -29 (111100011)
+-5 + -23 = -28 (111100100)
+-5 + -22 = -27 (111100101)
+-5 + -21 = -26 (111100110)
+-5 + -20 = -25 (111100111)
+-5 + -19 = -24 (111101000)
+-5 + -18 = -23 (111101001)
+-5 + -17 = -22 (111101010)
+-5 + -16 = -21 (111101011)
+-5 + -15 = -20 (111101100)
+-5 + -14 = -19 (111101101)
+-5 + -13 = -18 (111101110)
+-5 + -12 = -17 (111101111)
+-5 + -11 = -16 (111110000)
+-5 + -10 = -15 (111110001)
+-5 + -9 = -14 (111110010)
+-5 + -8 = -13 (111110011)
+-5 + -7 = -12 (111110100)
+-5 + -6 = -11 (111110101)
+-5 + -5 = -10 (111110110)
+-5 + -4 = -9 (111110111)
+-5 + -3 = -8 (111111000)
+-5 + -2 = -7 (111111001)
+-5 + -1 = -6 (111111010)
+-4 + 0 = -4 (111111100)
+-4 + 1 = -3 (111111101)
+-4 + 2 = -2 (111111110)
+-4 + 3 = -1 (111111111)
+-4 + 4 = 0 (000000000)
+-4 + 5 = 1 (000000001)
+-4 + 6 = 2 (000000010)
+-4 + 7 = 3 (000000011)
+-4 + 8 = 4 (000000100)
+-4 + 9 = 5 (000000101)
+-4 + 10 = 6 (000000110)
+-4 + 11 = 7 (000000111)
+-4 + 12 = 8 (000001000)
+-4 + 13 = 9 (000001001)
+-4 + 14 = 10 (000001010)
+-4 + 15 = 11 (000001011)
+-4 + 16 = 12 (000001100)
+-4 + 17 = 13 (000001101)
+-4 + 18 = 14 (000001110)
+-4 + 19 = 15 (000001111)
+-4 + 20 = 16 (000010000)
+-4 + 21 = 17 (000010001)
+-4 + 22 = 18 (000010010)
+-4 + 23 = 19 (000010011)
+-4 + 24 = 20 (000010100)
+-4 + 25 = 21 (000010101)
+-4 + 26 = 22 (000010110)
+-4 + 27 = 23 (000010111)
+-4 + 28 = 24 (000011000)
+-4 + 29 = 25 (000011001)
+-4 + 30 = 26 (000011010)
+-4 + 31 = 27 (000011011)
+-4 + -32 = -36 (111011100)
+-4 + -31 = -35 (111011101)
+-4 + -30 = -34 (111011110)
+-4 + -29 = -33 (111011111)
+-4 + -28 = -32 (111100000)
+-4 + -27 = -31 (111100001)
+-4 + -26 = -30 (111100010)
+-4 + -25 = -29 (111100011)
+-4 + -24 = -28 (111100100)
+-4 + -23 = -27 (111100101)
+-4 + -22 = -26 (111100110)
+-4 + -21 = -25 (111100111)
+-4 + -20 = -24 (111101000)
+-4 + -19 = -23 (111101001)
+-4 + -18 = -22 (111101010)
+-4 + -17 = -21 (111101011)
+-4 + -16 = -20 (111101100)
+-4 + -15 = -19 (111101101)
+-4 + -14 = -18 (111101110)
+-4 + -13 = -17 (111101111)
+-4 + -12 = -16 (111110000)
+-4 + -11 = -15 (111110001)
+-4 + -10 = -14 (111110010)
+-4 + -9 = -13 (111110011)
+-4 + -8 = -12 (111110100)
+-4 + -7 = -11 (111110101)
+-4 + -6 = -10 (111110110)
+-4 + -5 = -9 (111110111)
+-4 + -4 = -8 (111111000)
+-4 + -3 = -7 (111111001)
+-4 + -2 = -6 (111111010)
+-4 + -1 = -5 (111111011)
+-3 + 0 = -3 (111111101)
+-3 + 1 = -2 (111111110)
+-3 + 2 = -1 (111111111)
+-3 + 3 = 0 (000000000)
+-3 + 4 = 1 (000000001)
+-3 + 5 = 2 (000000010)
+-3 + 6 = 3 (000000011)
+-3 + 7 = 4 (000000100)
+-3 + 8 = 5 (000000101)
+-3 + 9 = 6 (000000110)
+-3 + 10 = 7 (000000111)
+-3 + 11 = 8 (000001000)
+-3 + 12 = 9 (000001001)
+-3 + 13 = 10 (000001010)
+-3 + 14 = 11 (000001011)
+-3 + 15 = 12 (000001100)
+-3 + 16 = 13 (000001101)
+-3 + 17 = 14 (000001110)
+-3 + 18 = 15 (000001111)
+-3 + 19 = 16 (000010000)
+-3 + 20 = 17 (000010001)
+-3 + 21 = 18 (000010010)
+-3 + 22 = 19 (000010011)
+-3 + 23 = 20 (000010100)
+-3 + 24 = 21 (000010101)
+-3 + 25 = 22 (000010110)
+-3 + 26 = 23 (000010111)
+-3 + 27 = 24 (000011000)
+-3 + 28 = 25 (000011001)
+-3 + 29 = 26 (000011010)
+-3 + 30 = 27 (000011011)
+-3 + 31 = 28 (000011100)
+-3 + -32 = -35 (111011101)
+-3 + -31 = -34 (111011110)
+-3 + -30 = -33 (111011111)
+-3 + -29 = -32 (111100000)
+-3 + -28 = -31 (111100001)
+-3 + -27 = -30 (111100010)
+-3 + -26 = -29 (111100011)
+-3 + -25 = -28 (111100100)
+-3 + -24 = -27 (111100101)
+-3 + -23 = -26 (111100110)
+-3 + -22 = -25 (111100111)
+-3 + -21 = -24 (111101000)
+-3 + -20 = -23 (111101001)
+-3 + -19 = -22 (111101010)
+-3 + -18 = -21 (111101011)
+-3 + -17 = -20 (111101100)
+-3 + -16 = -19 (111101101)
+-3 + -15 = -18 (111101110)
+-3 + -14 = -17 (111101111)
+-3 + -13 = -16 (111110000)
+-3 + -12 = -15 (111110001)
+-3 + -11 = -14 (111110010)
+-3 + -10 = -13 (111110011)
+-3 + -9 = -12 (111110100)
+-3 + -8 = -11 (111110101)
+-3 + -7 = -10 (111110110)
+-3 + -6 = -9 (111110111)
+-3 + -5 = -8 (111111000)
+-3 + -4 = -7 (111111001)
+-3 + -3 = -6 (111111010)
+-3 + -2 = -5 (111111011)
+-3 + -1 = -4 (111111100)
+-2 + 0 = -2 (111111110)
+-2 + 1 = -1 (111111111)
+-2 + 2 = 0 (000000000)
+-2 + 3 = 1 (000000001)
+-2 + 4 = 2 (000000010)
+-2 + 5 = 3 (000000011)
+-2 + 6 = 4 (000000100)
+-2 + 7 = 5 (000000101)
+-2 + 8 = 6 (000000110)
+-2 + 9 = 7 (000000111)
+-2 + 10 = 8 (000001000)
+-2 + 11 = 9 (000001001)
+-2 + 12 = 10 (000001010)
+-2 + 13 = 11 (000001011)
+-2 + 14 = 12 (000001100)
+-2 + 15 = 13 (000001101)
+-2 + 16 = 14 (000001110)
+-2 + 17 = 15 (000001111)
+-2 + 18 = 16 (000010000)
+-2 + 19 = 17 (000010001)
+-2 + 20 = 18 (000010010)
+-2 + 21 = 19 (000010011)
+-2 + 22 = 20 (000010100)
+-2 + 23 = 21 (000010101)
+-2 + 24 = 22 (000010110)
+-2 + 25 = 23 (000010111)
+-2 + 26 = 24 (000011000)
+-2 + 27 = 25 (000011001)
+-2 + 28 = 26 (000011010)
+-2 + 29 = 27 (000011011)
+-2 + 30 = 28 (000011100)
+-2 + 31 = 29 (000011101)
+-2 + -32 = -34 (111011110)
+-2 + -31 = -33 (111011111)
+-2 + -30 = -32 (111100000)
+-2 + -29 = -31 (111100001)
+-2 + -28 = -30 (111100010)
+-2 + -27 = -29 (111100011)
+-2 + -26 = -28 (111100100)
+-2 + -25 = -27 (111100101)
+-2 + -24 = -26 (111100110)
+-2 + -23 = -25 (111100111)
+-2 + -22 = -24 (111101000)
+-2 + -21 = -23 (111101001)
+-2 + -20 = -22 (111101010)
+-2 + -19 = -21 (111101011)
+-2 + -18 = -20 (111101100)
+-2 + -17 = -19 (111101101)
+-2 + -16 = -18 (111101110)
+-2 + -15 = -17 (111101111)
+-2 + -14 = -16 (111110000)
+-2 + -13 = -15 (111110001)
+-2 + -12 = -14 (111110010)
+-2 + -11 = -13 (111110011)
+-2 + -10 = -12 (111110100)
+-2 + -9 = -11 (111110101)
+-2 + -8 = -10 (111110110)
+-2 + -7 = -9 (111110111)
+-2 + -6 = -8 (111111000)
+-2 + -5 = -7 (111111001)
+-2 + -4 = -6 (111111010)
+-2 + -3 = -5 (111111011)
+-2 + -2 = -4 (111111100)
+-2 + -1 = -3 (111111101)
+-1 + 0 = -1 (111111111)
+-1 + 1 = 0 (000000000)
+-1 + 2 = 1 (000000001)
+-1 + 3 = 2 (000000010)
+-1 + 4 = 3 (000000011)
+-1 + 5 = 4 (000000100)
+-1 + 6 = 5 (000000101)
+-1 + 7 = 6 (000000110)
+-1 + 8 = 7 (000000111)
+-1 + 9 = 8 (000001000)
+-1 + 10 = 9 (000001001)
+-1 + 11 = 10 (000001010)
+-1 + 12 = 11 (000001011)
+-1 + 13 = 12 (000001100)
+-1 + 14 = 13 (000001101)
+-1 + 15 = 14 (000001110)
+-1 + 16 = 15 (000001111)
+-1 + 17 = 16 (000010000)
+-1 + 18 = 17 (000010001)
+-1 + 19 = 18 (000010010)
+-1 + 20 = 19 (000010011)
+-1 + 21 = 20 (000010100)
+-1 + 22 = 21 (000010101)
+-1 + 23 = 22 (000010110)
+-1 + 24 = 23 (000010111)
+-1 + 25 = 24 (000011000)
+-1 + 26 = 25 (000011001)
+-1 + 27 = 26 (000011010)
+-1 + 28 = 27 (000011011)
+-1 + 29 = 28 (000011100)
+-1 + 30 = 29 (000011101)
+-1 + 31 = 30 (000011110)
+-1 + -32 = -33 (111011111)
+-1 + -31 = -32 (111100000)
+-1 + -30 = -31 (111100001)
+-1 + -29 = -30 (111100010)
+-1 + -28 = -29 (111100011)
+-1 + -27 = -28 (111100100)
+-1 + -26 = -27 (111100101)
+-1 + -25 = -26 (111100110)
+-1 + -24 = -25 (111100111)
+-1 + -23 = -24 (111101000)
+-1 + -22 = -23 (111101001)
+-1 + -21 = -22 (111101010)
+-1 + -20 = -21 (111101011)
+-1 + -19 = -20 (111101100)
+-1 + -18 = -19 (111101101)
+-1 + -17 = -18 (111101110)
+-1 + -16 = -17 (111101111)
+-1 + -15 = -16 (111110000)
+-1 + -14 = -15 (111110001)
+-1 + -13 = -14 (111110010)
+-1 + -12 = -13 (111110011)
+-1 + -11 = -12 (111110100)
+-1 + -10 = -11 (111110101)
+-1 + -9 = -10 (111110110)
+-1 + -8 = -9 (111110111)
+-1 + -7 = -8 (111111000)
+-1 + -6 = -7 (111111001)
+-1 + -5 = -6 (111111010)
+-1 + -4 = -5 (111111011)
+-1 + -3 = -4 (111111100)
+-1 + -2 = -3 (111111101)
+-1 + -1 = -2 (111111110)
+0 + 0 = 0 (000000000)
+0 + 1 = 1 (000000001)
+0 + 2 = 2 (000000010)
+0 + 3 = 3 (000000011)
+0 + 4 = 4 (000000100)
+0 + 5 = 5 (000000101)
+0 + 6 = 6 (000000110)
+0 + 7 = 7 (000000111)
+0 + 8 = 8 (000001000)
+0 + 9 = 9 (000001001)
+0 + 10 = 10 (000001010)
+0 + 11 = 11 (000001011)
+0 + 12 = 12 (000001100)
+0 + 13 = 13 (000001101)
+0 + 14 = 14 (000001110)
+0 + 15 = 15 (000001111)
+0 + 16 = 16 (000010000)
+0 + 17 = 17 (000010001)
+0 + 18 = 18 (000010010)
+0 + 19 = 19 (000010011)
+0 + 20 = 20 (000010100)
+0 + 21 = 21 (000010101)
+0 + 22 = 22 (000010110)
+0 + 23 = 23 (000010111)
+0 + 24 = 24 (000011000)
+0 + 25 = 25 (000011001)
+0 + 26 = 26 (000011010)
+0 + 27 = 27 (000011011)
+0 + 28 = 28 (000011100)
+0 + 29 = 29 (000011101)
+0 + 30 = 30 (000011110)
+0 + 31 = 31 (000011111)
+0 + -32 = -32 (111100000)
+0 + -31 = -31 (111100001)
+0 + -30 = -30 (111100010)
+0 + -29 = -29 (111100011)
+0 + -28 = -28 (111100100)
+0 + -27 = -27 (111100101)
+0 + -26 = -26 (111100110)
+0 + -25 = -25 (111100111)
+0 + -24 = -24 (111101000)
+0 + -23 = -23 (111101001)
+0 + -22 = -22 (111101010)
+0 + -21 = -21 (111101011)
+0 + -20 = -20 (111101100)
+0 + -19 = -19 (111101101)
+0 + -18 = -18 (111101110)
+0 + -17 = -17 (111101111)
+0 + -16 = -16 (111110000)
+0 + -15 = -15 (111110001)
+0 + -14 = -14 (111110010)
+0 + -13 = -13 (111110011)
+0 + -12 = -12 (111110100)
+0 + -11 = -11 (111110101)
+0 + -10 = -10 (111110110)
+0 + -9 = -9 (111110111)
+0 + -8 = -8 (111111000)
+0 + -7 = -7 (111111001)
+0 + -6 = -6 (111111010)
+0 + -5 = -5 (111111011)
+0 + -4 = -4 (111111100)
+0 + -3 = -3 (111111101)
+0 + -2 = -2 (111111110)
+0 + -1 = -1 (111111111)
+1 + 0 = 1 (000000001)
+1 + 1 = 2 (000000010)
+1 + 2 = 3 (000000011)
+1 + 3 = 4 (000000100)
+1 + 4 = 5 (000000101)
+1 + 5 = 6 (000000110)
+1 + 6 = 7 (000000111)
+1 + 7 = 8 (000001000)
+1 + 8 = 9 (000001001)
+1 + 9 = 10 (000001010)
+1 + 10 = 11 (000001011)
+1 + 11 = 12 (000001100)
+1 + 12 = 13 (000001101)
+1 + 13 = 14 (000001110)
+1 + 14 = 15 (000001111)
+1 + 15 = 16 (000010000)
+1 + 16 = 17 (000010001)
+1 + 17 = 18 (000010010)
+1 + 18 = 19 (000010011)
+1 + 19 = 20 (000010100)
+1 + 20 = 21 (000010101)
+1 + 21 = 22 (000010110)
+1 + 22 = 23 (000010111)
+1 + 23 = 24 (000011000)
+1 + 24 = 25 (000011001)
+1 + 25 = 26 (000011010)
+1 + 26 = 27 (000011011)
+1 + 27 = 28 (000011100)
+1 + 28 = 29 (000011101)
+1 + 29 = 30 (000011110)
+1 + 30 = 31 (000011111)
+1 + 31 = 32 (000100000)
+1 + -32 = -31 (111100001)
+1 + -31 = -30 (111100010)
+1 + -30 = -29 (111100011)
+1 + -29 = -28 (111100100)
+1 + -28 = -27 (111100101)
+1 + -27 = -26 (111100110)
+1 + -26 = -25 (111100111)
+1 + -25 = -24 (111101000)
+1 + -24 = -23 (111101001)
+1 + -23 = -22 (111101010)
+1 + -22 = -21 (111101011)
+1 + -21 = -20 (111101100)
+1 + -20 = -19 (111101101)
+1 + -19 = -18 (111101110)
+1 + -18 = -17 (111101111)
+1 + -17 = -16 (111110000)
+1 + -16 = -15 (111110001)
+1 + -15 = -14 (111110010)
+1 + -14 = -13 (111110011)
+1 + -13 = -12 (111110100)
+1 + -12 = -11 (111110101)
+1 + -11 = -10 (111110110)
+1 + -10 = -9 (111110111)
+1 + -9 = -8 (111111000)
+1 + -8 = -7 (111111001)
+1 + -7 = -6 (111111010)
+1 + -6 = -5 (111111011)
+1 + -5 = -4 (111111100)
+1 + -4 = -3 (111111101)
+1 + -3 = -2 (111111110)
+1 + -2 = -1 (111111111)
+1 + -1 = 0 (000000000)
+2 + 0 = 2 (000000010)
+2 + 1 = 3 (000000011)
+2 + 2 = 4 (000000100)
+2 + 3 = 5 (000000101)
+2 + 4 = 6 (000000110)
+2 + 5 = 7 (000000111)
+2 + 6 = 8 (000001000)
+2 + 7 = 9 (000001001)
+2 + 8 = 10 (000001010)
+2 + 9 = 11 (000001011)
+2 + 10 = 12 (000001100)
+2 + 11 = 13 (000001101)
+2 + 12 = 14 (000001110)
+2 + 13 = 15 (000001111)
+2 + 14 = 16 (000010000)
+2 + 15 = 17 (000010001)
+2 + 16 = 18 (000010010)
+2 + 17 = 19 (000010011)
+2 + 18 = 20 (000010100)
+2 + 19 = 21 (000010101)
+2 + 20 = 22 (000010110)
+2 + 21 = 23 (000010111)
+2 + 22 = 24 (000011000)
+2 + 23 = 25 (000011001)
+2 + 24 = 26 (000011010)
+2 + 25 = 27 (000011011)
+2 + 26 = 28 (000011100)
+2 + 27 = 29 (000011101)
+2 + 28 = 30 (000011110)
+2 + 29 = 31 (000011111)
+2 + 30 = 32 (000100000)
+2 + 31 = 33 (000100001)
+2 + -32 = -30 (111100010)
+2 + -31 = -29 (111100011)
+2 + -30 = -28 (111100100)
+2 + -29 = -27 (111100101)
+2 + -28 = -26 (111100110)
+2 + -27 = -25 (111100111)
+2 + -26 = -24 (111101000)
+2 + -25 = -23 (111101001)
+2 + -24 = -22 (111101010)
+2 + -23 = -21 (111101011)
+2 + -22 = -20 (111101100)
+2 + -21 = -19 (111101101)
+2 + -20 = -18 (111101110)
+2 + -19 = -17 (111101111)
+2 + -18 = -16 (111110000)
+2 + -17 = -15 (111110001)
+2 + -16 = -14 (111110010)
+2 + -15 = -13 (111110011)
+2 + -14 = -12 (111110100)
+2 + -13 = -11 (111110101)
+2 + -12 = -10 (111110110)
+2 + -11 = -9 (111110111)
+2 + -10 = -8 (111111000)
+2 + -9 = -7 (111111001)
+2 + -8 = -6 (111111010)
+2 + -7 = -5 (111111011)
+2 + -6 = -4 (111111100)
+2 + -5 = -3 (111111101)
+2 + -4 = -2 (111111110)
+2 + -3 = -1 (111111111)
+2 + -2 = 0 (000000000)
+2 + -1 = 1 (000000001)
+3 + 0 = 3 (000000011)
+3 + 1 = 4 (000000100)
+3 + 2 = 5 (000000101)
+3 + 3 = 6 (000000110)
+3 + 4 = 7 (000000111)
+3 + 5 = 8 (000001000)
+3 + 6 = 9 (000001001)
+3 + 7 = 10 (000001010)
+3 + 8 = 11 (000001011)
+3 + 9 = 12 (000001100)
+3 + 10 = 13 (000001101)
+3 + 11 = 14 (000001110)
+3 + 12 = 15 (000001111)
+3 + 13 = 16 (000010000)
+3 + 14 = 17 (000010001)
+3 + 15 = 18 (000010010)
+3 + 16 = 19 (000010011)
+3 + 17 = 20 (000010100)
+3 + 18 = 21 (000010101)
+3 + 19 = 22 (000010110)
+3 + 20 = 23 (000010111)
+3 + 21 = 24 (000011000)
+3 + 22 = 25 (000011001)
+3 + 23 = 26 (000011010)
+3 + 24 = 27 (000011011)
+3 + 25 = 28 (000011100)
+3 + 26 = 29 (000011101)
+3 + 27 = 30 (000011110)
+3 + 28 = 31 (000011111)
+3 + 29 = 32 (000100000)
+3 + 30 = 33 (000100001)
+3 + 31 = 34 (000100010)
+3 + -32 = -29 (111100011)
+3 + -31 = -28 (111100100)
+3 + -30 = -27 (111100101)
+3 + -29 = -26 (111100110)
+3 + -28 = -25 (111100111)
+3 + -27 = -24 (111101000)
+3 + -26 = -23 (111101001)
+3 + -25 = -22 (111101010)
+3 + -24 = -21 (111101011)
+3 + -23 = -20 (111101100)
+3 + -22 = -19 (111101101)
+3 + -21 = -18 (111101110)
+3 + -20 = -17 (111101111)
+3 + -19 = -16 (111110000)
+3 + -18 = -15 (111110001)
+3 + -17 = -14 (111110010)
+3 + -16 = -13 (111110011)
+3 + -15 = -12 (111110100)
+3 + -14 = -11 (111110101)
+3 + -13 = -10 (111110110)
+3 + -12 = -9 (111110111)
+3 + -11 = -8 (111111000)
+3 + -10 = -7 (111111001)
+3 + -9 = -6 (111111010)
+3 + -8 = -5 (111111011)
+3 + -7 = -4 (111111100)
+3 + -6 = -3 (111111101)
+3 + -5 = -2 (111111110)
+3 + -4 = -1 (111111111)
+3 + -3 = 0 (000000000)
+3 + -2 = 1 (000000001)
+3 + -1 = 2 (000000010)
+4 + 0 = 4 (000000100)
+4 + 1 = 5 (000000101)
+4 + 2 = 6 (000000110)
+4 + 3 = 7 (000000111)
+4 + 4 = 8 (000001000)
+4 + 5 = 9 (000001001)
+4 + 6 = 10 (000001010)
+4 + 7 = 11 (000001011)
+4 + 8 = 12 (000001100)
+4 + 9 = 13 (000001101)
+4 + 10 = 14 (000001110)
+4 + 11 = 15 (000001111)
+4 + 12 = 16 (000010000)
+4 + 13 = 17 (000010001)
+4 + 14 = 18 (000010010)
+4 + 15 = 19 (000010011)
+4 + 16 = 20 (000010100)
+4 + 17 = 21 (000010101)
+4 + 18 = 22 (000010110)
+4 + 19 = 23 (000010111)
+4 + 20 = 24 (000011000)
+4 + 21 = 25 (000011001)
+4 + 22 = 26 (000011010)
+4 + 23 = 27 (000011011)
+4 + 24 = 28 (000011100)
+4 + 25 = 29 (000011101)
+4 + 26 = 30 (000011110)
+4 + 27 = 31 (000011111)
+4 + 28 = 32 (000100000)
+4 + 29 = 33 (000100001)
+4 + 30 = 34 (000100010)
+4 + 31 = 35 (000100011)
+4 + -32 = -28 (111100100)
+4 + -31 = -27 (111100101)
+4 + -30 = -26 (111100110)
+4 + -29 = -25 (111100111)
+4 + -28 = -24 (111101000)
+4 + -27 = -23 (111101001)
+4 + -26 = -22 (111101010)
+4 + -25 = -21 (111101011)
+4 + -24 = -20 (111101100)
+4 + -23 = -19 (111101101)
+4 + -22 = -18 (111101110)
+4 + -21 = -17 (111101111)
+4 + -20 = -16 (111110000)
+4 + -19 = -15 (111110001)
+4 + -18 = -14 (111110010)
+4 + -17 = -13 (111110011)
+4 + -16 = -12 (111110100)
+4 + -15 = -11 (111110101)
+4 + -14 = -10 (111110110)
+4 + -13 = -9 (111110111)
+4 + -12 = -8 (111111000)
+4 + -11 = -7 (111111001)
+4 + -10 = -6 (111111010)
+4 + -9 = -5 (111111011)
+4 + -8 = -4 (111111100)
+4 + -7 = -3 (111111101)
+4 + -6 = -2 (111111110)
+4 + -5 = -1 (111111111)
+4 + -4 = 0 (000000000)
+4 + -3 = 1 (000000001)
+4 + -2 = 2 (000000010)
+4 + -1 = 3 (000000011)
+5 + 0 = 5 (000000101)
+5 + 1 = 6 (000000110)
+5 + 2 = 7 (000000111)
+5 + 3 = 8 (000001000)
+5 + 4 = 9 (000001001)
+5 + 5 = 10 (000001010)
+5 + 6 = 11 (000001011)
+5 + 7 = 12 (000001100)
+5 + 8 = 13 (000001101)
+5 + 9 = 14 (000001110)
+5 + 10 = 15 (000001111)
+5 + 11 = 16 (000010000)
+5 + 12 = 17 (000010001)
+5 + 13 = 18 (000010010)
+5 + 14 = 19 (000010011)
+5 + 15 = 20 (000010100)
+5 + 16 = 21 (000010101)
+5 + 17 = 22 (000010110)
+5 + 18 = 23 (000010111)
+5 + 19 = 24 (000011000)
+5 + 20 = 25 (000011001)
+5 + 21 = 26 (000011010)
+5 + 22 = 27 (000011011)
+5 + 23 = 28 (000011100)
+5 + 24 = 29 (000011101)
+5 + 25 = 30 (000011110)
+5 + 26 = 31 (000011111)
+5 + 27 = 32 (000100000)
+5 + 28 = 33 (000100001)
+5 + 29 = 34 (000100010)
+5 + 30 = 35 (000100011)
+5 + 31 = 36 (000100100)
+5 + -32 = -27 (111100101)
+5 + -31 = -26 (111100110)
+5 + -30 = -25 (111100111)
+5 + -29 = -24 (111101000)
+5 + -28 = -23 (111101001)
+5 + -27 = -22 (111101010)
+5 + -26 = -21 (111101011)
+5 + -25 = -20 (111101100)
+5 + -24 = -19 (111101101)
+5 + -23 = -18 (111101110)
+5 + -22 = -17 (111101111)
+5 + -21 = -16 (111110000)
+5 + -20 = -15 (111110001)
+5 + -19 = -14 (111110010)
+5 + -18 = -13 (111110011)
+5 + -17 = -12 (111110100)
+5 + -16 = -11 (111110101)
+5 + -15 = -10 (111110110)
+5 + -14 = -9 (111110111)
+5 + -13 = -8 (111111000)
+5 + -12 = -7 (111111001)
+5 + -11 = -6 (111111010)
+5 + -10 = -5 (111111011)
+5 + -9 = -4 (111111100)
+5 + -8 = -3 (111111101)
+5 + -7 = -2 (111111110)
+5 + -6 = -1 (111111111)
+5 + -5 = 0 (000000000)
+5 + -4 = 1 (000000001)
+5 + -3 = 2 (000000010)
+5 + -2 = 3 (000000011)
+5 + -1 = 4 (000000100)
+6 + 0 = 6 (000000110)
+6 + 1 = 7 (000000111)
+6 + 2 = 8 (000001000)
+6 + 3 = 9 (000001001)
+6 + 4 = 10 (000001010)
+6 + 5 = 11 (000001011)
+6 + 6 = 12 (000001100)
+6 + 7 = 13 (000001101)
+6 + 8 = 14 (000001110)
+6 + 9 = 15 (000001111)
+6 + 10 = 16 (000010000)
+6 + 11 = 17 (000010001)
+6 + 12 = 18 (000010010)
+6 + 13 = 19 (000010011)
+6 + 14 = 20 (000010100)
+6 + 15 = 21 (000010101)
+6 + 16 = 22 (000010110)
+6 + 17 = 23 (000010111)
+6 + 18 = 24 (000011000)
+6 + 19 = 25 (000011001)
+6 + 20 = 26 (000011010)
+6 + 21 = 27 (000011011)
+6 + 22 = 28 (000011100)
+6 + 23 = 29 (000011101)
+6 + 24 = 30 (000011110)
+6 + 25 = 31 (000011111)
+6 + 26 = 32 (000100000)
+6 + 27 = 33 (000100001)
+6 + 28 = 34 (000100010)
+6 + 29 = 35 (000100011)
+6 + 30 = 36 (000100100)
+6 + 31 = 37 (000100101)
+6 + -32 = -26 (111100110)
+6 + -31 = -25 (111100111)
+6 + -30 = -24 (111101000)
+6 + -29 = -23 (111101001)
+6 + -28 = -22 (111101010)
+6 + -27 = -21 (111101011)
+6 + -26 = -20 (111101100)
+6 + -25 = -19 (111101101)
+6 + -24 = -18 (111101110)
+6 + -23 = -17 (111101111)
+6 + -22 = -16 (111110000)
+6 + -21 = -15 (111110001)
+6 + -20 = -14 (111110010)
+6 + -19 = -13 (111110011)
+6 + -18 = -12 (111110100)
+6 + -17 = -11 (111110101)
+6 + -16 = -10 (111110110)
+6 + -15 = -9 (111110111)
+6 + -14 = -8 (111111000)
+6 + -13 = -7 (111111001)
+6 + -12 = -6 (111111010)
+6 + -11 = -5 (111111011)
+6 + -10 = -4 (111111100)
+6 + -9 = -3 (111111101)
+6 + -8 = -2 (111111110)
+6 + -7 = -1 (111111111)
+6 + -6 = 0 (000000000)
+6 + -5 = 1 (000000001)
+6 + -4 = 2 (000000010)
+6 + -3 = 3 (000000011)
+6 + -2 = 4 (000000100)
+6 + -1 = 5 (000000101)
+7 + 0 = 7 (000000111)
+7 + 1 = 8 (000001000)
+7 + 2 = 9 (000001001)
+7 + 3 = 10 (000001010)
+7 + 4 = 11 (000001011)
+7 + 5 = 12 (000001100)
+7 + 6 = 13 (000001101)
+7 + 7 = 14 (000001110)
+7 + 8 = 15 (000001111)
+7 + 9 = 16 (000010000)
+7 + 10 = 17 (000010001)
+7 + 11 = 18 (000010010)
+7 + 12 = 19 (000010011)
+7 + 13 = 20 (000010100)
+7 + 14 = 21 (000010101)
+7 + 15 = 22 (000010110)
+7 + 16 = 23 (000010111)
+7 + 17 = 24 (000011000)
+7 + 18 = 25 (000011001)
+7 + 19 = 26 (000011010)
+7 + 20 = 27 (000011011)
+7 + 21 = 28 (000011100)
+7 + 22 = 29 (000011101)
+7 + 23 = 30 (000011110)
+7 + 24 = 31 (000011111)
+7 + 25 = 32 (000100000)
+7 + 26 = 33 (000100001)
+7 + 27 = 34 (000100010)
+7 + 28 = 35 (000100011)
+7 + 29 = 36 (000100100)
+7 + 30 = 37 (000100101)
+7 + 31 = 38 (000100110)
+7 + -32 = -25 (111100111)
+7 + -31 = -24 (111101000)
+7 + -30 = -23 (111101001)
+7 + -29 = -22 (111101010)
+7 + -28 = -21 (111101011)
+7 + -27 = -20 (111101100)
+7 + -26 = -19 (111101101)
+7 + -25 = -18 (111101110)
+7 + -24 = -17 (111101111)
+7 + -23 = -16 (111110000)
+7 + -22 = -15 (111110001)
+7 + -21 = -14 (111110010)
+7 + -20 = -13 (111110011)
+7 + -19 = -12 (111110100)
+7 + -18 = -11 (111110101)
+7 + -17 = -10 (111110110)
+7 + -16 = -9 (111110111)
+7 + -15 = -8 (111111000)
+7 + -14 = -7 (111111001)
+7 + -13 = -6 (111111010)
+7 + -12 = -5 (111111011)
+7 + -11 = -4 (111111100)
+7 + -10 = -3 (111111101)
+7 + -9 = -2 (111111110)
+7 + -8 = -1 (111111111)
+7 + -7 = 0 (000000000)
+7 + -6 = 1 (000000001)
+7 + -5 = 2 (000000010)
+7 + -4 = 3 (000000011)
+7 + -3 = 4 (000000100)
+7 + -2 = 5 (000000101)
+7 + -1 = 6 (000000110)
+-8 + 0 = -8 (111111000)
+-8 + 1 = -7 (111111001)
+-8 + 2 = -6 (111111010)
+-8 + 3 = -5 (111111011)
+-8 + 4 = -4 (111111100)
+-8 + 5 = -3 (111111101)
+-8 + 6 = -2 (111111110)
+-8 + 7 = -1 (111111111)
+-8 + 8 = 0 (000000000)
+-8 + 9 = 1 (000000001)
+-8 + 10 = 2 (000000010)
+-8 + 11 = 3 (000000011)
+-8 + 12 = 4 (000000100)
+-8 + 13 = 5 (000000101)
+-8 + 14 = 6 (000000110)
+-8 + 15 = 7 (000000111)
+-8 + 16 = 8 (000001000)
+-8 + 17 = 9 (000001001)
+-8 + 18 = 10 (000001010)
+-8 + 19 = 11 (000001011)
+-8 + 20 = 12 (000001100)
+-8 + 21 = 13 (000001101)
+-8 + 22 = 14 (000001110)
+-8 + 23 = 15 (000001111)
+-8 + 24 = 16 (000010000)
+-8 + 25 = 17 (000010001)
+-8 + 26 = 18 (000010010)
+-8 + 27 = 19 (000010011)
+-8 + 28 = 20 (000010100)
+-8 + 29 = 21 (000010101)
+-8 + 30 = 22 (000010110)
+-8 + 31 = 23 (000010111)
+-8 + -32 = -40 (111011000)
+-8 + -31 = -39 (111011001)
+-8 + -30 = -38 (111011010)
+-8 + -29 = -37 (111011011)
+-8 + -28 = -36 (111011100)
+-8 + -27 = -35 (111011101)
+-8 + -26 = -34 (111011110)
+-8 + -25 = -33 (111011111)
+-8 + -24 = -32 (111100000)
+-8 + -23 = -31 (111100001)
+-8 + -22 = -30 (111100010)
+-8 + -21 = -29 (111100011)
+-8 + -20 = -28 (111100100)
+-8 + -19 = -27 (111100101)
+-8 + -18 = -26 (111100110)
+-8 + -17 = -25 (111100111)
+-8 + -16 = -24 (111101000)
+-8 + -15 = -23 (111101001)
+-8 + -14 = -22 (111101010)
+-8 + -13 = -21 (111101011)
+-8 + -12 = -20 (111101100)
+-8 + -11 = -19 (111101101)
+-8 + -10 = -18 (111101110)
+-8 + -9 = -17 (111101111)
+-8 + -8 = -16 (111110000)
+-8 + -7 = -15 (111110001)
+-8 + -6 = -14 (111110010)
+-8 + -5 = -13 (111110011)
+-8 + -4 = -12 (111110100)
+-8 + -3 = -11 (111110101)
+-8 + -2 = -10 (111110110)
+-8 + -1 = -9 (111110111)
+-7 + 0 = -7 (111111001)
+-7 + 1 = -6 (111111010)
+-7 + 2 = -5 (111111011)
+-7 + 3 = -4 (111111100)
+-7 + 4 = -3 (111111101)
+-7 + 5 = -2 (111111110)
+-7 + 6 = -1 (111111111)
+-7 + 7 = 0 (000000000)
+-7 + 8 = 1 (000000001)
+-7 + 9 = 2 (000000010)
+-7 + 10 = 3 (000000011)
+-7 + 11 = 4 (000000100)
+-7 + 12 = 5 (000000101)
+-7 + 13 = 6 (000000110)
+-7 + 14 = 7 (000000111)
+-7 + 15 = 8 (000001000)
+-7 + 16 = 9 (000001001)
+-7 + 17 = 10 (000001010)
+-7 + 18 = 11 (000001011)
+-7 + 19 = 12 (000001100)
+-7 + 20 = 13 (000001101)
+-7 + 21 = 14 (000001110)
+-7 + 22 = 15 (000001111)
+-7 + 23 = 16 (000010000)
+-7 + 24 = 17 (000010001)
+-7 + 25 = 18 (000010010)
+-7 + 26 = 19 (000010011)
+-7 + 27 = 20 (000010100)
+-7 + 28 = 21 (000010101)
+-7 + 29 = 22 (000010110)
+-7 + 30 = 23 (000010111)
+-7 + 31 = 24 (000011000)
+-7 + -32 = -39 (111011001)
+-7 + -31 = -38 (111011010)
+-7 + -30 = -37 (111011011)
+-7 + -29 = -36 (111011100)
+-7 + -28 = -35 (111011101)
+-7 + -27 = -34 (111011110)
+-7 + -26 = -33 (111011111)
+-7 + -25 = -32 (111100000)
+-7 + -24 = -31 (111100001)
+-7 + -23 = -30 (111100010)
+-7 + -22 = -29 (111100011)
+-7 + -21 = -28 (111100100)
+-7 + -20 = -27 (111100101)
+-7 + -19 = -26 (111100110)
+-7 + -18 = -25 (111100111)
+-7 + -17 = -24 (111101000)
+-7 + -16 = -23 (111101001)
+-7 + -15 = -22 (111101010)
+-7 + -14 = -21 (111101011)
+-7 + -13 = -20 (111101100)
+-7 + -12 = -19 (111101101)
+-7 + -11 = -18 (111101110)
+-7 + -10 = -17 (111101111)
+-7 + -9 = -16 (111110000)
+-7 + -8 = -15 (111110001)
+-7 + -7 = -14 (111110010)
+-7 + -6 = -13 (111110011)
+-7 + -5 = -12 (111110100)
+-7 + -4 = -11 (111110101)
+-7 + -3 = -10 (111110110)
+-7 + -2 = -9 (111110111)
+-7 + -1 = -8 (111111000)
+-6 + 0 = -6 (111111010)
+-6 + 1 = -5 (111111011)
+-6 + 2 = -4 (111111100)
+-6 + 3 = -3 (111111101)
+-6 + 4 = -2 (111111110)
+-6 + 5 = -1 (111111111)
+-6 + 6 = 0 (000000000)
+-6 + 7 = 1 (000000001)
+-6 + 8 = 2 (000000010)
+-6 + 9 = 3 (000000011)
+-6 + 10 = 4 (000000100)
+-6 + 11 = 5 (000000101)
+-6 + 12 = 6 (000000110)
+-6 + 13 = 7 (000000111)
+-6 + 14 = 8 (000001000)
+-6 + 15 = 9 (000001001)
+-6 + 16 = 10 (000001010)
+-6 + 17 = 11 (000001011)
+-6 + 18 = 12 (000001100)
+-6 + 19 = 13 (000001101)
+-6 + 20 = 14 (000001110)
+-6 + 21 = 15 (000001111)
+-6 + 22 = 16 (000010000)
+-6 + 23 = 17 (000010001)
+-6 + 24 = 18 (000010010)
+-6 + 25 = 19 (000010011)
+-6 + 26 = 20 (000010100)
+-6 + 27 = 21 (000010101)
+-6 + 28 = 22 (000010110)
+-6 + 29 = 23 (000010111)
+-6 + 30 = 24 (000011000)
+-6 + 31 = 25 (000011001)
+-6 + -32 = -38 (111011010)
+-6 + -31 = -37 (111011011)
+-6 + -30 = -36 (111011100)
+-6 + -29 = -35 (111011101)
+-6 + -28 = -34 (111011110)
+-6 + -27 = -33 (111011111)
+-6 + -26 = -32 (111100000)
+-6 + -25 = -31 (111100001)
+-6 + -24 = -30 (111100010)
+-6 + -23 = -29 (111100011)
+-6 + -22 = -28 (111100100)
+-6 + -21 = -27 (111100101)
+-6 + -20 = -26 (111100110)
+-6 + -19 = -25 (111100111)
+-6 + -18 = -24 (111101000)
+-6 + -17 = -23 (111101001)
+-6 + -16 = -22 (111101010)
+-6 + -15 = -21 (111101011)
+-6 + -14 = -20 (111101100)
+-6 + -13 = -19 (111101101)
+-6 + -12 = -18 (111101110)
+-6 + -11 = -17 (111101111)
+-6 + -10 = -16 (111110000)
+-6 + -9 = -15 (111110001)
+-6 + -8 = -14 (111110010)
+-6 + -7 = -13 (111110011)
+-6 + -6 = -12 (111110100)
+-6 + -5 = -11 (111110101)
+-6 + -4 = -10 (111110110)
+-6 + -3 = -9 (111110111)
+-6 + -2 = -8 (111111000)
+-6 + -1 = -7 (111111001)
+-5 + 0 = -5 (111111011)
+-5 + 1 = -4 (111111100)
+-5 + 2 = -3 (111111101)
+-5 + 3 = -2 (111111110)
+-5 + 4 = -1 (111111111)
+-5 + 5 = 0 (000000000)
+-5 + 6 = 1 (000000001)
+-5 + 7 = 2 (000000010)
+-5 + 8 = 3 (000000011)
+-5 + 9 = 4 (000000100)
+-5 + 10 = 5 (000000101)
+-5 + 11 = 6 (000000110)
+-5 + 12 = 7 (000000111)
+-5 + 13 = 8 (000001000)
+-5 + 14 = 9 (000001001)
+-5 + 15 = 10 (000001010)
+-5 + 16 = 11 (000001011)
+-5 + 17 = 12 (000001100)
+-5 + 18 = 13 (000001101)
+-5 + 19 = 14 (000001110)
+-5 + 20 = 15 (000001111)
+-5 + 21 = 16 (000010000)
+-5 + 22 = 17 (000010001)
+-5 + 23 = 18 (000010010)
+-5 + 24 = 19 (000010011)
+-5 + 25 = 20 (000010100)
+-5 + 26 = 21 (000010101)
+-5 + 27 = 22 (000010110)
+-5 + 28 = 23 (000010111)
+-5 + 29 = 24 (000011000)
+-5 + 30 = 25 (000011001)
+-5 + 31 = 26 (000011010)
+-5 + -32 = -37 (111011011)
+-5 + -31 = -36 (111011100)
+-5 + -30 = -35 (111011101)
+-5 + -29 = -34 (111011110)
+-5 + -28 = -33 (111011111)
+-5 + -27 = -32 (111100000)
+-5 + -26 = -31 (111100001)
+-5 + -25 = -30 (111100010)
+-5 + -24 = -29 (111100011)
+-5 + -23 = -28 (111100100)
+-5 + -22 = -27 (111100101)
+-5 + -21 = -26 (111100110)
+-5 + -20 = -25 (111100111)
+-5 + -19 = -24 (111101000)
+-5 + -18 = -23 (111101001)
+-5 + -17 = -22 (111101010)
+-5 + -16 = -21 (111101011)
+-5 + -15 = -20 (111101100)
+-5 + -14 = -19 (111101101)
+-5 + -13 = -18 (111101110)
+-5 + -12 = -17 (111101111)
+-5 + -11 = -16 (111110000)
+-5 + -10 = -15 (111110001)
+-5 + -9 = -14 (111110010)
+-5 + -8 = -13 (111110011)
+-5 + -7 = -12 (111110100)
+-5 + -6 = -11 (111110101)
+-5 + -5 = -10 (111110110)
+-5 + -4 = -9 (111110111)
+-5 + -3 = -8 (111111000)
+-5 + -2 = -7 (111111001)
+-5 + -1 = -6 (111111010)
+-4 + 0 = -4 (111111100)
+-4 + 1 = -3 (111111101)
+-4 + 2 = -2 (111111110)
+-4 + 3 = -1 (111111111)
+-4 + 4 = 0 (000000000)
+-4 + 5 = 1 (000000001)
+-4 + 6 = 2 (000000010)
+-4 + 7 = 3 (000000011)
+-4 + 8 = 4 (000000100)
+-4 + 9 = 5 (000000101)
+-4 + 10 = 6 (000000110)
+-4 + 11 = 7 (000000111)
+-4 + 12 = 8 (000001000)
+-4 + 13 = 9 (000001001)
+-4 + 14 = 10 (000001010)
+-4 + 15 = 11 (000001011)
+-4 + 16 = 12 (000001100)
+-4 + 17 = 13 (000001101)
+-4 + 18 = 14 (000001110)
+-4 + 19 = 15 (000001111)
+-4 + 20 = 16 (000010000)
+-4 + 21 = 17 (000010001)
+-4 + 22 = 18 (000010010)
+-4 + 23 = 19 (000010011)
+-4 + 24 = 20 (000010100)
+-4 + 25 = 21 (000010101)
+-4 + 26 = 22 (000010110)
+-4 + 27 = 23 (000010111)
+-4 + 28 = 24 (000011000)
+-4 + 29 = 25 (000011001)
+-4 + 30 = 26 (000011010)
+-4 + 31 = 27 (000011011)
+-4 + -32 = -36 (111011100)
+-4 + -31 = -35 (111011101)
+-4 + -30 = -34 (111011110)
+-4 + -29 = -33 (111011111)
+-4 + -28 = -32 (111100000)
+-4 + -27 = -31 (111100001)
+-4 + -26 = -30 (111100010)
+-4 + -25 = -29 (111100011)
+-4 + -24 = -28 (111100100)
+-4 + -23 = -27 (111100101)
+-4 + -22 = -26 (111100110)
+-4 + -21 = -25 (111100111)
+-4 + -20 = -24 (111101000)
+-4 + -19 = -23 (111101001)
+-4 + -18 = -22 (111101010)
+-4 + -17 = -21 (111101011)
+-4 + -16 = -20 (111101100)
+-4 + -15 = -19 (111101101)
+-4 + -14 = -18 (111101110)
+-4 + -13 = -17 (111101111)
+-4 + -12 = -16 (111110000)
+-4 + -11 = -15 (111110001)
+-4 + -10 = -14 (111110010)
+-4 + -9 = -13 (111110011)
+-4 + -8 = -12 (111110100)
+-4 + -7 = -11 (111110101)
+-4 + -6 = -10 (111110110)
+-4 + -5 = -9 (111110111)
+-4 + -4 = -8 (111111000)
+-4 + -3 = -7 (111111001)
+-4 + -2 = -6 (111111010)
+-4 + -1 = -5 (111111011)
+-3 + 0 = -3 (111111101)
+-3 + 1 = -2 (111111110)
+-3 + 2 = -1 (111111111)
+-3 + 3 = 0 (000000000)
+-3 + 4 = 1 (000000001)
+-3 + 5 = 2 (000000010)
+-3 + 6 = 3 (000000011)
+-3 + 7 = 4 (000000100)
+-3 + 8 = 5 (000000101)
+-3 + 9 = 6 (000000110)
+-3 + 10 = 7 (000000111)
+-3 + 11 = 8 (000001000)
+-3 + 12 = 9 (000001001)
+-3 + 13 = 10 (000001010)
+-3 + 14 = 11 (000001011)
+-3 + 15 = 12 (000001100)
+-3 + 16 = 13 (000001101)
+-3 + 17 = 14 (000001110)
+-3 + 18 = 15 (000001111)
+-3 + 19 = 16 (000010000)
+-3 + 20 = 17 (000010001)
+-3 + 21 = 18 (000010010)
+-3 + 22 = 19 (000010011)
+-3 + 23 = 20 (000010100)
+-3 + 24 = 21 (000010101)
+-3 + 25 = 22 (000010110)
+-3 + 26 = 23 (000010111)
+-3 + 27 = 24 (000011000)
+-3 + 28 = 25 (000011001)
+-3 + 29 = 26 (000011010)
+-3 + 30 = 27 (000011011)
+-3 + 31 = 28 (000011100)
+-3 + -32 = -35 (111011101)
+-3 + -31 = -34 (111011110)
+-3 + -30 = -33 (111011111)
+-3 + -29 = -32 (111100000)
+-3 + -28 = -31 (111100001)
+-3 + -27 = -30 (111100010)
+-3 + -26 = -29 (111100011)
+-3 + -25 = -28 (111100100)
+-3 + -24 = -27 (111100101)
+-3 + -23 = -26 (111100110)
+-3 + -22 = -25 (111100111)
+-3 + -21 = -24 (111101000)
+-3 + -20 = -23 (111101001)
+-3 + -19 = -22 (111101010)
+-3 + -18 = -21 (111101011)
+-3 + -17 = -20 (111101100)
+-3 + -16 = -19 (111101101)
+-3 + -15 = -18 (111101110)
+-3 + -14 = -17 (111101111)
+-3 + -13 = -16 (111110000)
+-3 + -12 = -15 (111110001)
+-3 + -11 = -14 (111110010)
+-3 + -10 = -13 (111110011)
+-3 + -9 = -12 (111110100)
+-3 + -8 = -11 (111110101)
+-3 + -7 = -10 (111110110)
+-3 + -6 = -9 (111110111)
+-3 + -5 = -8 (111111000)
+-3 + -4 = -7 (111111001)
+-3 + -3 = -6 (111111010)
+-3 + -2 = -5 (111111011)
+-3 + -1 = -4 (111111100)
+-2 + 0 = -2 (111111110)
+-2 + 1 = -1 (111111111)
+-2 + 2 = 0 (000000000)
+-2 + 3 = 1 (000000001)
+-2 + 4 = 2 (000000010)
+-2 + 5 = 3 (000000011)
+-2 + 6 = 4 (000000100)
+-2 + 7 = 5 (000000101)
+-2 + 8 = 6 (000000110)
+-2 + 9 = 7 (000000111)
+-2 + 10 = 8 (000001000)
+-2 + 11 = 9 (000001001)
+-2 + 12 = 10 (000001010)
+-2 + 13 = 11 (000001011)
+-2 + 14 = 12 (000001100)
+-2 + 15 = 13 (000001101)
+-2 + 16 = 14 (000001110)
+-2 + 17 = 15 (000001111)
+-2 + 18 = 16 (000010000)
+-2 + 19 = 17 (000010001)
+-2 + 20 = 18 (000010010)
+-2 + 21 = 19 (000010011)
+-2 + 22 = 20 (000010100)
+-2 + 23 = 21 (000010101)
+-2 + 24 = 22 (000010110)
+-2 + 25 = 23 (000010111)
+-2 + 26 = 24 (000011000)
+-2 + 27 = 25 (000011001)
+-2 + 28 = 26 (000011010)
+-2 + 29 = 27 (000011011)
+-2 + 30 = 28 (000011100)
+-2 + 31 = 29 (000011101)
+-2 + -32 = -34 (111011110)
+-2 + -31 = -33 (111011111)
+-2 + -30 = -32 (111100000)
+-2 + -29 = -31 (111100001)
+-2 + -28 = -30 (111100010)
+-2 + -27 = -29 (111100011)
+-2 + -26 = -28 (111100100)
+-2 + -25 = -27 (111100101)
+-2 + -24 = -26 (111100110)
+-2 + -23 = -25 (111100111)
+-2 + -22 = -24 (111101000)
+-2 + -21 = -23 (111101001)
+-2 + -20 = -22 (111101010)
+-2 + -19 = -21 (111101011)
+-2 + -18 = -20 (111101100)
+-2 + -17 = -19 (111101101)
+-2 + -16 = -18 (111101110)
+-2 + -15 = -17 (111101111)
+-2 + -14 = -16 (111110000)
+-2 + -13 = -15 (111110001)
+-2 + -12 = -14 (111110010)
+-2 + -11 = -13 (111110011)
+-2 + -10 = -12 (111110100)
+-2 + -9 = -11 (111110101)
+-2 + -8 = -10 (111110110)
+-2 + -7 = -9 (111110111)
+-2 + -6 = -8 (111111000)
+-2 + -5 = -7 (111111001)
+-2 + -4 = -6 (111111010)
+-2 + -3 = -5 (111111011)
+-2 + -2 = -4 (111111100)
+-2 + -1 = -3 (111111101)
+-1 + 0 = -1 (111111111)
+-1 + 1 = 0 (000000000)
+-1 + 2 = 1 (000000001)
+-1 + 3 = 2 (000000010)
+-1 + 4 = 3 (000000011)
+-1 + 5 = 4 (000000100)
+-1 + 6 = 5 (000000101)
+-1 + 7 = 6 (000000110)
+-1 + 8 = 7 (000000111)
+-1 + 9 = 8 (000001000)
+-1 + 10 = 9 (000001001)
+-1 + 11 = 10 (000001010)
+-1 + 12 = 11 (000001011)
+-1 + 13 = 12 (000001100)
+-1 + 14 = 13 (000001101)
+-1 + 15 = 14 (000001110)
+-1 + 16 = 15 (000001111)
+-1 + 17 = 16 (000010000)
+-1 + 18 = 17 (000010001)
+-1 + 19 = 18 (000010010)
+-1 + 20 = 19 (000010011)
+-1 + 21 = 20 (000010100)
+-1 + 22 = 21 (000010101)
+-1 + 23 = 22 (000010110)
+-1 + 24 = 23 (000010111)
+-1 + 25 = 24 (000011000)
+-1 + 26 = 25 (000011001)
+-1 + 27 = 26 (000011010)
+-1 + 28 = 27 (000011011)
+-1 + 29 = 28 (000011100)
+-1 + 30 = 29 (000011101)
+-1 + 31 = 30 (000011110)
+-1 + -32 = -33 (111011111)
+-1 + -31 = -32 (111100000)
+-1 + -30 = -31 (111100001)
+-1 + -29 = -30 (111100010)
+-1 + -28 = -29 (111100011)
+-1 + -27 = -28 (111100100)
+-1 + -26 = -27 (111100101)
+-1 + -25 = -26 (111100110)
+-1 + -24 = -25 (111100111)
+-1 + -23 = -24 (111101000)
+-1 + -22 = -23 (111101001)
+-1 + -21 = -22 (111101010)
+-1 + -20 = -21 (111101011)
+-1 + -19 = -20 (111101100)
+-1 + -18 = -19 (111101101)
+-1 + -17 = -18 (111101110)
+-1 + -16 = -17 (111101111)
+-1 + -15 = -16 (111110000)
+-1 + -14 = -15 (111110001)
+-1 + -13 = -14 (111110010)
+-1 + -12 = -13 (111110011)
+-1 + -11 = -12 (111110100)
+-1 + -10 = -11 (111110101)
+-1 + -9 = -10 (111110110)
+-1 + -8 = -9 (111110111)
+-1 + -7 = -8 (111111000)
+-1 + -6 = -7 (111111001)
+-1 + -5 = -6 (111111010)
+-1 + -4 = -5 (111111011)
+-1 + -3 = -4 (111111100)
+-1 + -2 = -3 (111111101)
+-1 + -1 = -2 (111111110)
+0 + 0 = 0 (000000000)
+0 + 1 = 1 (000000001)
+0 + 2 = 2 (000000010)
+0 + 3 = 3 (000000011)
+0 + 4 = 4 (000000100)
+0 + 5 = 5 (000000101)
+0 + 6 = 6 (000000110)
+0 + 7 = 7 (000000111)
+0 + 8 = 8 (000001000)
+0 + 9 = 9 (000001001)
+0 + 10 = 10 (000001010)
+0 + 11 = 11 (000001011)
+0 + 12 = 12 (000001100)
+0 + 13 = 13 (000001101)
+0 + 14 = 14 (000001110)
+0 + 15 = 15 (000001111)
+0 + 16 = 16 (000010000)
+0 + 17 = 17 (000010001)
+0 + 18 = 18 (000010010)
+0 + 19 = 19 (000010011)
+0 + 20 = 20 (000010100)
+0 + 21 = 21 (000010101)
+0 + 22 = 22 (000010110)
+0 + 23 = 23 (000010111)
+0 + 24 = 24 (000011000)
+0 + 25 = 25 (000011001)
+0 + 26 = 26 (000011010)
+0 + 27 = 27 (000011011)
+0 + 28 = 28 (000011100)
+0 + 29 = 29 (000011101)
+0 + 30 = 30 (000011110)
+0 + 31 = 31 (000011111)
+0 + -32 = -32 (111100000)
+0 + -31 = -31 (111100001)
+0 + -30 = -30 (111100010)
+0 + -29 = -29 (111100011)
+0 + -28 = -28 (111100100)
+0 + -27 = -27 (111100101)
+0 + -26 = -26 (111100110)
+0 + -25 = -25 (111100111)
+0 + -24 = -24 (111101000)
+0 + -23 = -23 (111101001)
+0 + -22 = -22 (111101010)
+0 + -21 = -21 (111101011)
+0 + -20 = -20 (111101100)
+0 + -19 = -19 (111101101)
+0 + -18 = -18 (111101110)
+0 + -17 = -17 (111101111)
+0 + -16 = -16 (111110000)
+0 + -15 = -15 (111110001)
+0 + -14 = -14 (111110010)
+0 + -13 = -13 (111110011)
+0 + -12 = -12 (111110100)
+0 + -11 = -11 (111110101)
+0 + -10 = -10 (111110110)
+0 + -9 = -9 (111110111)
+0 + -8 = -8 (111111000)
+0 + -7 = -7 (111111001)
+0 + -6 = -6 (111111010)
+0 + -5 = -5 (111111011)
+0 + -4 = -4 (111111100)
+0 + -3 = -3 (111111101)
+0 + -2 = -2 (111111110)
+0 + -1 = -1 (111111111)
+1 + 0 = 1 (000000001)
+1 + 1 = 2 (000000010)
+1 + 2 = 3 (000000011)
+1 + 3 = 4 (000000100)
+1 + 4 = 5 (000000101)
+1 + 5 = 6 (000000110)
+1 + 6 = 7 (000000111)
+1 + 7 = 8 (000001000)
+1 + 8 = 9 (000001001)
+1 + 9 = 10 (000001010)
+1 + 10 = 11 (000001011)
+1 + 11 = 12 (000001100)
+1 + 12 = 13 (000001101)
+1 + 13 = 14 (000001110)
+1 + 14 = 15 (000001111)
+1 + 15 = 16 (000010000)
+1 + 16 = 17 (000010001)
+1 + 17 = 18 (000010010)
+1 + 18 = 19 (000010011)
+1 + 19 = 20 (000010100)
+1 + 20 = 21 (000010101)
+1 + 21 = 22 (000010110)
+1 + 22 = 23 (000010111)
+1 + 23 = 24 (000011000)
+1 + 24 = 25 (000011001)
+1 + 25 = 26 (000011010)
+1 + 26 = 27 (000011011)
+1 + 27 = 28 (000011100)
+1 + 28 = 29 (000011101)
+1 + 29 = 30 (000011110)
+1 + 30 = 31 (000011111)
+1 + 31 = 32 (000100000)
+1 + -32 = -31 (111100001)
+1 + -31 = -30 (111100010)
+1 + -30 = -29 (111100011)
+1 + -29 = -28 (111100100)
+1 + -28 = -27 (111100101)
+1 + -27 = -26 (111100110)
+1 + -26 = -25 (111100111)
+1 + -25 = -24 (111101000)
+1 + -24 = -23 (111101001)
+1 + -23 = -22 (111101010)
+1 + -22 = -21 (111101011)
+1 + -21 = -20 (111101100)
+1 + -20 = -19 (111101101)
+1 + -19 = -18 (111101110)
+1 + -18 = -17 (111101111)
+1 + -17 = -16 (111110000)
+1 + -16 = -15 (111110001)
+1 + -15 = -14 (111110010)
+1 + -14 = -13 (111110011)
+1 + -13 = -12 (111110100)
+1 + -12 = -11 (111110101)
+1 + -11 = -10 (111110110)
+1 + -10 = -9 (111110111)
+1 + -9 = -8 (111111000)
+1 + -8 = -7 (111111001)
+1 + -7 = -6 (111111010)
+1 + -6 = -5 (111111011)
+1 + -5 = -4 (111111100)
+1 + -4 = -3 (111111101)
+1 + -3 = -2 (111111110)
+1 + -2 = -1 (111111111)
+1 + -1 = 0 (000000000)
+2 + 0 = 2 (000000010)
+2 + 1 = 3 (000000011)
+2 + 2 = 4 (000000100)
+2 + 3 = 5 (000000101)
+2 + 4 = 6 (000000110)
+2 + 5 = 7 (000000111)
+2 + 6 = 8 (000001000)
+2 + 7 = 9 (000001001)
+2 + 8 = 10 (000001010)
+2 + 9 = 11 (000001011)
+2 + 10 = 12 (000001100)
+2 + 11 = 13 (000001101)
+2 + 12 = 14 (000001110)
+2 + 13 = 15 (000001111)
+2 + 14 = 16 (000010000)
+2 + 15 = 17 (000010001)
+2 + 16 = 18 (000010010)
+2 + 17 = 19 (000010011)
+2 + 18 = 20 (000010100)
+2 + 19 = 21 (000010101)
+2 + 20 = 22 (000010110)
+2 + 21 = 23 (000010111)
+2 + 22 = 24 (000011000)
+2 + 23 = 25 (000011001)
+2 + 24 = 26 (000011010)
+2 + 25 = 27 (000011011)
+2 + 26 = 28 (000011100)
+2 + 27 = 29 (000011101)
+2 + 28 = 30 (000011110)
+2 + 29 = 31 (000011111)
+2 + 30 = 32 (000100000)
+2 + 31 = 33 (000100001)
+2 + -32 = -30 (111100010)
+2 + -31 = -29 (111100011)
+2 + -30 = -28 (111100100)
+2 + -29 = -27 (111100101)
+2 + -28 = -26 (111100110)
+2 + -27 = -25 (111100111)
+2 + -26 = -24 (111101000)
+2 + -25 = -23 (111101001)
+2 + -24 = -22 (111101010)
+2 + -23 = -21 (111101011)
+2 + -22 = -20 (111101100)
+2 + -21 = -19 (111101101)
+2 + -20 = -18 (111101110)
+2 + -19 = -17 (111101111)
+2 + -18 = -16 (111110000)
+2 + -17 = -15 (111110001)
+2 + -16 = -14 (111110010)
+2 + -15 = -13 (111110011)
+2 + -14 = -12 (111110100)
+2 + -13 = -11 (111110101)
+2 + -12 = -10 (111110110)
+2 + -11 = -9 (111110111)
+2 + -10 = -8 (111111000)
+2 + -9 = -7 (111111001)
+2 + -8 = -6 (111111010)
+2 + -7 = -5 (111111011)
+2 + -6 = -4 (111111100)
+2 + -5 = -3 (111111101)
+2 + -4 = -2 (111111110)
+2 + -3 = -1 (111111111)
+2 + -2 = 0 (000000000)
+2 + -1 = 1 (000000001)
+3 + 0 = 3 (000000011)
+3 + 1 = 4 (000000100)
+3 + 2 = 5 (000000101)
+3 + 3 = 6 (000000110)
+3 + 4 = 7 (000000111)
+3 + 5 = 8 (000001000)
+3 + 6 = 9 (000001001)
+3 + 7 = 10 (000001010)
+3 + 8 = 11 (000001011)
+3 + 9 = 12 (000001100)
+3 + 10 = 13 (000001101)
+3 + 11 = 14 (000001110)
+3 + 12 = 15 (000001111)
+3 + 13 = 16 (000010000)
+3 + 14 = 17 (000010001)
+3 + 15 = 18 (000010010)
+3 + 16 = 19 (000010011)
+3 + 17 = 20 (000010100)
+3 + 18 = 21 (000010101)
+3 + 19 = 22 (000010110)
+3 + 20 = 23 (000010111)
+3 + 21 = 24 (000011000)
+3 + 22 = 25 (000011001)
+3 + 23 = 26 (000011010)
+3 + 24 = 27 (000011011)
+3 + 25 = 28 (000011100)
+3 + 26 = 29 (000011101)
+3 + 27 = 30 (000011110)
+3 + 28 = 31 (000011111)
+3 + 29 = 32 (000100000)
+3 + 30 = 33 (000100001)
+3 + 31 = 34 (000100010)
+3 + -32 = -29 (111100011)
+3 + -31 = -28 (111100100)
+3 + -30 = -27 (111100101)
+3 + -29 = -26 (111100110)
+3 + -28 = -25 (111100111)
+3 + -27 = -24 (111101000)
+3 + -26 = -23 (111101001)
+3 + -25 = -22 (111101010)
+3 + -24 = -21 (111101011)
+3 + -23 = -20 (111101100)
+3 + -22 = -19 (111101101)
+3 + -21 = -18 (111101110)
+3 + -20 = -17 (111101111)
+3 + -19 = -16 (111110000)
+3 + -18 = -15 (111110001)
+3 + -17 = -14 (111110010)
+3 + -16 = -13 (111110011)
+3 + -15 = -12 (111110100)
+3 + -14 = -11 (111110101)
+3 + -13 = -10 (111110110)
+3 + -12 = -9 (111110111)
+3 + -11 = -8 (111111000)
+3 + -10 = -7 (111111001)
+3 + -9 = -6 (111111010)
+3 + -8 = -5 (111111011)
+3 + -7 = -4 (111111100)
+3 + -6 = -3 (111111101)
+3 + -5 = -2 (111111110)
+3 + -4 = -1 (111111111)
+3 + -3 = 0 (000000000)
+3 + -2 = 1 (000000001)
+3 + -1 = 2 (000000010)
+4 + 0 = 4 (000000100)
+4 + 1 = 5 (000000101)
+4 + 2 = 6 (000000110)
+4 + 3 = 7 (000000111)
+4 + 4 = 8 (000001000)
+4 + 5 = 9 (000001001)
+4 + 6 = 10 (000001010)
+4 + 7 = 11 (000001011)
+4 + 8 = 12 (000001100)
+4 + 9 = 13 (000001101)
+4 + 10 = 14 (000001110)
+4 + 11 = 15 (000001111)
+4 + 12 = 16 (000010000)
+4 + 13 = 17 (000010001)
+4 + 14 = 18 (000010010)
+4 + 15 = 19 (000010011)
+4 + 16 = 20 (000010100)
+4 + 17 = 21 (000010101)
+4 + 18 = 22 (000010110)
+4 + 19 = 23 (000010111)
+4 + 20 = 24 (000011000)
+4 + 21 = 25 (000011001)
+4 + 22 = 26 (000011010)
+4 + 23 = 27 (000011011)
+4 + 24 = 28 (000011100)
+4 + 25 = 29 (000011101)
+4 + 26 = 30 (000011110)
+4 + 27 = 31 (000011111)
+4 + 28 = 32 (000100000)
+4 + 29 = 33 (000100001)
+4 + 30 = 34 (000100010)
+4 + 31 = 35 (000100011)
+4 + -32 = -28 (111100100)
+4 + -31 = -27 (111100101)
+4 + -30 = -26 (111100110)
+4 + -29 = -25 (111100111)
+4 + -28 = -24 (111101000)
+4 + -27 = -23 (111101001)
+4 + -26 = -22 (111101010)
+4 + -25 = -21 (111101011)
+4 + -24 = -20 (111101100)
+4 + -23 = -19 (111101101)
+4 + -22 = -18 (111101110)
+4 + -21 = -17 (111101111)
+4 + -20 = -16 (111110000)
+4 + -19 = -15 (111110001)
+4 + -18 = -14 (111110010)
+4 + -17 = -13 (111110011)
+4 + -16 = -12 (111110100)
+4 + -15 = -11 (111110101)
+4 + -14 = -10 (111110110)
+4 + -13 = -9 (111110111)
+4 + -12 = -8 (111111000)
+4 + -11 = -7 (111111001)
+4 + -10 = -6 (111111010)
+4 + -9 = -5 (111111011)
+4 + -8 = -4 (111111100)
+4 + -7 = -3 (111111101)
+4 + -6 = -2 (111111110)
+4 + -5 = -1 (111111111)
+4 + -4 = 0 (000000000)
+4 + -3 = 1 (000000001)
+4 + -2 = 2 (000000010)
+4 + -1 = 3 (000000011)
+5 + 0 = 5 (000000101)
+5 + 1 = 6 (000000110)
+5 + 2 = 7 (000000111)
+5 + 3 = 8 (000001000)
+5 + 4 = 9 (000001001)
+5 + 5 = 10 (000001010)
+5 + 6 = 11 (000001011)
+5 + 7 = 12 (000001100)
+5 + 8 = 13 (000001101)
+5 + 9 = 14 (000001110)
+5 + 10 = 15 (000001111)
+5 + 11 = 16 (000010000)
+5 + 12 = 17 (000010001)
+5 + 13 = 18 (000010010)
+5 + 14 = 19 (000010011)
+5 + 15 = 20 (000010100)
+5 + 16 = 21 (000010101)
+5 + 17 = 22 (000010110)
+5 + 18 = 23 (000010111)
+5 + 19 = 24 (000011000)
+5 + 20 = 25 (000011001)
+5 + 21 = 26 (000011010)
+5 + 22 = 27 (000011011)
+5 + 23 = 28 (000011100)
+5 + 24 = 29 (000011101)
+5 + 25 = 30 (000011110)
+5 + 26 = 31 (000011111)
+5 + 27 = 32 (000100000)
+5 + 28 = 33 (000100001)
+5 + 29 = 34 (000100010)
+5 + 30 = 35 (000100011)
+5 + 31 = 36 (000100100)
+5 + -32 = -27 (111100101)
+5 + -31 = -26 (111100110)
+5 + -30 = -25 (111100111)
+5 + -29 = -24 (111101000)
+5 + -28 = -23 (111101001)
+5 + -27 = -22 (111101010)
+5 + -26 = -21 (111101011)
+5 + -25 = -20 (111101100)
+5 + -24 = -19 (111101101)
+5 + -23 = -18 (111101110)
+5 + -22 = -17 (111101111)
+5 + -21 = -16 (111110000)
+5 + -20 = -15 (111110001)
+5 + -19 = -14 (111110010)
+5 + -18 = -13 (111110011)
+5 + -17 = -12 (111110100)
+5 + -16 = -11 (111110101)
+5 + -15 = -10 (111110110)
+5 + -14 = -9 (111110111)
+5 + -13 = -8 (111111000)
+5 + -12 = -7 (111111001)
+5 + -11 = -6 (111111010)
+5 + -10 = -5 (111111011)
+5 + -9 = -4 (111111100)
+5 + -8 = -3 (111111101)
+5 + -7 = -2 (111111110)
+5 + -6 = -1 (111111111)
+5 + -5 = 0 (000000000)
+5 + -4 = 1 (000000001)
+5 + -3 = 2 (000000010)
+5 + -2 = 3 (000000011)
+5 + -1 = 4 (000000100)
+6 + 0 = 6 (000000110)
+6 + 1 = 7 (000000111)
+6 + 2 = 8 (000001000)
+6 + 3 = 9 (000001001)
+6 + 4 = 10 (000001010)
+6 + 5 = 11 (000001011)
+6 + 6 = 12 (000001100)
+6 + 7 = 13 (000001101)
+6 + 8 = 14 (000001110)
+6 + 9 = 15 (000001111)
+6 + 10 = 16 (000010000)
+6 + 11 = 17 (000010001)
+6 + 12 = 18 (000010010)
+6 + 13 = 19 (000010011)
+6 + 14 = 20 (000010100)
+6 + 15 = 21 (000010101)
+6 + 16 = 22 (000010110)
+6 + 17 = 23 (000010111)
+6 + 18 = 24 (000011000)
+6 + 19 = 25 (000011001)
+6 + 20 = 26 (000011010)
+6 + 21 = 27 (000011011)
+6 + 22 = 28 (000011100)
+6 + 23 = 29 (000011101)
+6 + 24 = 30 (000011110)
+6 + 25 = 31 (000011111)
+6 + 26 = 32 (000100000)
+6 + 27 = 33 (000100001)
+6 + 28 = 34 (000100010)
+6 + 29 = 35 (000100011)
+6 + 30 = 36 (000100100)
+6 + 31 = 37 (000100101)
+6 + -32 = -26 (111100110)
+6 + -31 = -25 (111100111)
+6 + -30 = -24 (111101000)
+6 + -29 = -23 (111101001)
+6 + -28 = -22 (111101010)
+6 + -27 = -21 (111101011)
+6 + -26 = -20 (111101100)
+6 + -25 = -19 (111101101)
+6 + -24 = -18 (111101110)
+6 + -23 = -17 (111101111)
+6 + -22 = -16 (111110000)
+6 + -21 = -15 (111110001)
+6 + -20 = -14 (111110010)
+6 + -19 = -13 (111110011)
+6 + -18 = -12 (111110100)
+6 + -17 = -11 (111110101)
+6 + -16 = -10 (111110110)
+6 + -15 = -9 (111110111)
+6 + -14 = -8 (111111000)
+6 + -13 = -7 (111111001)
+6 + -12 = -6 (111111010)
+6 + -11 = -5 (111111011)
+6 + -10 = -4 (111111100)
+6 + -9 = -3 (111111101)
+6 + -8 = -2 (111111110)
+6 + -7 = -1 (111111111)
+6 + -6 = 0 (000000000)
+6 + -5 = 1 (000000001)
+6 + -4 = 2 (000000010)
+6 + -3 = 3 (000000011)
+6 + -2 = 4 (000000100)
+6 + -1 = 5 (000000101)
+7 + 0 = 7 (000000111)
+7 + 1 = 8 (000001000)
+7 + 2 = 9 (000001001)
+7 + 3 = 10 (000001010)
+7 + 4 = 11 (000001011)
+7 + 5 = 12 (000001100)
+7 + 6 = 13 (000001101)
+7 + 7 = 14 (000001110)
+7 + 8 = 15 (000001111)
+7 + 9 = 16 (000010000)
+7 + 10 = 17 (000010001)
+7 + 11 = 18 (000010010)
+7 + 12 = 19 (000010011)
+7 + 13 = 20 (000010100)
+7 + 14 = 21 (000010101)
+7 + 15 = 22 (000010110)
+7 + 16 = 23 (000010111)
+7 + 17 = 24 (000011000)
+7 + 18 = 25 (000011001)
+7 + 19 = 26 (000011010)
+7 + 20 = 27 (000011011)
+7 + 21 = 28 (000011100)
+7 + 22 = 29 (000011101)
+7 + 23 = 30 (000011110)
+7 + 24 = 31 (000011111)
+7 + 25 = 32 (000100000)
+7 + 26 = 33 (000100001)
+7 + 27 = 34 (000100010)
+7 + 28 = 35 (000100011)
+7 + 29 = 36 (000100100)
+7 + 30 = 37 (000100101)
+7 + 31 = 38 (000100110)
+7 + -32 = -25 (111100111)
+7 + -31 = -24 (111101000)
+7 + -30 = -23 (111101001)
+7 + -29 = -22 (111101010)
+7 + -28 = -21 (111101011)
+7 + -27 = -20 (111101100)
+7 + -26 = -19 (111101101)
+7 + -25 = -18 (111101110)
+7 + -24 = -17 (111101111)
+7 + -23 = -16 (111110000)
+7 + -22 = -15 (111110001)
+7 + -21 = -14 (111110010)
+7 + -20 = -13 (111110011)
+7 + -19 = -12 (111110100)
+7 + -18 = -11 (111110101)
+7 + -17 = -10 (111110110)
+7 + -16 = -9 (111110111)
+7 + -15 = -8 (111111000)
+7 + -14 = -7 (111111001)
+7 + -13 = -6 (111111010)
+7 + -12 = -5 (111111011)
+7 + -11 = -4 (111111100)
+7 + -10 = -3 (111111101)
+7 + -9 = -2 (111111110)
+7 + -8 = -1 (111111111)
+7 + -7 = 0 (000000000)
+7 + -6 = 1 (000000001)
+7 + -5 = 2 (000000010)
+7 + -4 = 3 (000000011)
+7 + -3 = 4 (000000100)
+7 + -2 = 5 (000000101)
+7 + -1 = 6 (000000110)
+-8 + 0 = -8 (111111000)
+-8 + 1 = -7 (111111001)
+-8 + 2 = -6 (111111010)
+-8 + 3 = -5 (111111011)
+-8 + 4 = -4 (111111100)
+-8 + 5 = -3 (111111101)
+-8 + 6 = -2 (111111110)
+-8 + 7 = -1 (111111111)
+-8 + 8 = 0 (000000000)
+-8 + 9 = 1 (000000001)
+-8 + 10 = 2 (000000010)
+-8 + 11 = 3 (000000011)
+-8 + 12 = 4 (000000100)
+-8 + 13 = 5 (000000101)
+-8 + 14 = 6 (000000110)
+-8 + 15 = 7 (000000111)
+-8 + 16 = 8 (000001000)
+-8 + 17 = 9 (000001001)
+-8 + 18 = 10 (000001010)
+-8 + 19 = 11 (000001011)
+-8 + 20 = 12 (000001100)
+-8 + 21 = 13 (000001101)
+-8 + 22 = 14 (000001110)
+-8 + 23 = 15 (000001111)
+-8 + 24 = 16 (000010000)
+-8 + 25 = 17 (000010001)
+-8 + 26 = 18 (000010010)
+-8 + 27 = 19 (000010011)
+-8 + 28 = 20 (000010100)
+-8 + 29 = 21 (000010101)
+-8 + 30 = 22 (000010110)
+-8 + 31 = 23 (000010111)
+-8 + -32 = -40 (111011000)
+-8 + -31 = -39 (111011001)
+-8 + -30 = -38 (111011010)
+-8 + -29 = -37 (111011011)
+-8 + -28 = -36 (111011100)
+-8 + -27 = -35 (111011101)
+-8 + -26 = -34 (111011110)
+-8 + -25 = -33 (111011111)
+-8 + -24 = -32 (111100000)
+-8 + -23 = -31 (111100001)
+-8 + -22 = -30 (111100010)
+-8 + -21 = -29 (111100011)
+-8 + -20 = -28 (111100100)
+-8 + -19 = -27 (111100101)
+-8 + -18 = -26 (111100110)
+-8 + -17 = -25 (111100111)
+-8 + -16 = -24 (111101000)
+-8 + -15 = -23 (111101001)
+-8 + -14 = -22 (111101010)
+-8 + -13 = -21 (111101011)
+-8 + -12 = -20 (111101100)
+-8 + -11 = -19 (111101101)
+-8 + -10 = -18 (111101110)
+-8 + -9 = -17 (111101111)
+-8 + -8 = -16 (111110000)
+-8 + -7 = -15 (111110001)
+-8 + -6 = -14 (111110010)
+-8 + -5 = -13 (111110011)
+-8 + -4 = -12 (111110100)
+-8 + -3 = -11 (111110101)
+-8 + -2 = -10 (111110110)
+-8 + -1 = -9 (111110111)
+-7 + 0 = -7 (111111001)
+-7 + 1 = -6 (111111010)
+-7 + 2 = -5 (111111011)
+-7 + 3 = -4 (111111100)
+-7 + 4 = -3 (111111101)
+-7 + 5 = -2 (111111110)
+-7 + 6 = -1 (111111111)
+-7 + 7 = 0 (000000000)
+-7 + 8 = 1 (000000001)
+-7 + 9 = 2 (000000010)
+-7 + 10 = 3 (000000011)
+-7 + 11 = 4 (000000100)
+-7 + 12 = 5 (000000101)
+-7 + 13 = 6 (000000110)
+-7 + 14 = 7 (000000111)
+-7 + 15 = 8 (000001000)
+-7 + 16 = 9 (000001001)
+-7 + 17 = 10 (000001010)
+-7 + 18 = 11 (000001011)
+-7 + 19 = 12 (000001100)
+-7 + 20 = 13 (000001101)
+-7 + 21 = 14 (000001110)
+-7 + 22 = 15 (000001111)
+-7 + 23 = 16 (000010000)
+-7 + 24 = 17 (000010001)
+-7 + 25 = 18 (000010010)
+-7 + 26 = 19 (000010011)
+-7 + 27 = 20 (000010100)
+-7 + 28 = 21 (000010101)
+-7 + 29 = 22 (000010110)
+-7 + 30 = 23 (000010111)
+-7 + 31 = 24 (000011000)
+-7 + -32 = -39 (111011001)
+-7 + -31 = -38 (111011010)
+-7 + -30 = -37 (111011011)
+-7 + -29 = -36 (111011100)
+-7 + -28 = -35 (111011101)
+-7 + -27 = -34 (111011110)
+-7 + -26 = -33 (111011111)
+-7 + -25 = -32 (111100000)
+-7 + -24 = -31 (111100001)
+-7 + -23 = -30 (111100010)
+-7 + -22 = -29 (111100011)
+-7 + -21 = -28 (111100100)
+-7 + -20 = -27 (111100101)
+-7 + -19 = -26 (111100110)
+-7 + -18 = -25 (111100111)
+-7 + -17 = -24 (111101000)
+-7 + -16 = -23 (111101001)
+-7 + -15 = -22 (111101010)
+-7 + -14 = -21 (111101011)
+-7 + -13 = -20 (111101100)
+-7 + -12 = -19 (111101101)
+-7 + -11 = -18 (111101110)
+-7 + -10 = -17 (111101111)
+-7 + -9 = -16 (111110000)
+-7 + -8 = -15 (111110001)
+-7 + -7 = -14 (111110010)
+-7 + -6 = -13 (111110011)
+-7 + -5 = -12 (111110100)
+-7 + -4 = -11 (111110101)
+-7 + -3 = -10 (111110110)
+-7 + -2 = -9 (111110111)
+-7 + -1 = -8 (111111000)
+-6 + 0 = -6 (111111010)
+-6 + 1 = -5 (111111011)
+-6 + 2 = -4 (111111100)
+-6 + 3 = -3 (111111101)
+-6 + 4 = -2 (111111110)
+-6 + 5 = -1 (111111111)
+-6 + 6 = 0 (000000000)
+-6 + 7 = 1 (000000001)
+-6 + 8 = 2 (000000010)
+-6 + 9 = 3 (000000011)
+-6 + 10 = 4 (000000100)
+-6 + 11 = 5 (000000101)
+-6 + 12 = 6 (000000110)
+-6 + 13 = 7 (000000111)
+-6 + 14 = 8 (000001000)
+-6 + 15 = 9 (000001001)
+-6 + 16 = 10 (000001010)
+-6 + 17 = 11 (000001011)
+-6 + 18 = 12 (000001100)
+-6 + 19 = 13 (000001101)
+-6 + 20 = 14 (000001110)
+-6 + 21 = 15 (000001111)
+-6 + 22 = 16 (000010000)
+-6 + 23 = 17 (000010001)
+-6 + 24 = 18 (000010010)
+-6 + 25 = 19 (000010011)
+-6 + 26 = 20 (000010100)
+-6 + 27 = 21 (000010101)
+-6 + 28 = 22 (000010110)
+-6 + 29 = 23 (000010111)
+-6 + 30 = 24 (000011000)
+-6 + 31 = 25 (000011001)
+-6 + -32 = -38 (111011010)
+-6 + -31 = -37 (111011011)
+-6 + -30 = -36 (111011100)
+-6 + -29 = -35 (111011101)
+-6 + -28 = -34 (111011110)
+-6 + -27 = -33 (111011111)
+-6 + -26 = -32 (111100000)
+-6 + -25 = -31 (111100001)
+-6 + -24 = -30 (111100010)
+-6 + -23 = -29 (111100011)
+-6 + -22 = -28 (111100100)
+-6 + -21 = -27 (111100101)
+-6 + -20 = -26 (111100110)
+-6 + -19 = -25 (111100111)
+-6 + -18 = -24 (111101000)
+-6 + -17 = -23 (111101001)
+-6 + -16 = -22 (111101010)
+-6 + -15 = -21 (111101011)
+-6 + -14 = -20 (111101100)
+-6 + -13 = -19 (111101101)
+-6 + -12 = -18 (111101110)
+-6 + -11 = -17 (111101111)
+-6 + -10 = -16 (111110000)
+-6 + -9 = -15 (111110001)
+-6 + -8 = -14 (111110010)
+-6 + -7 = -13 (111110011)
+-6 + -6 = -12 (111110100)
+-6 + -5 = -11 (111110101)
+-6 + -4 = -10 (111110110)
+-6 + -3 = -9 (111110111)
+-6 + -2 = -8 (111111000)
+-6 + -1 = -7 (111111001)
+-5 + 0 = -5 (111111011)
+-5 + 1 = -4 (111111100)
+-5 + 2 = -3 (111111101)
+-5 + 3 = -2 (111111110)
+-5 + 4 = -1 (111111111)
+-5 + 5 = 0 (000000000)
+-5 + 6 = 1 (000000001)
+-5 + 7 = 2 (000000010)
+-5 + 8 = 3 (000000011)
+-5 + 9 = 4 (000000100)
+-5 + 10 = 5 (000000101)
+-5 + 11 = 6 (000000110)
+-5 + 12 = 7 (000000111)
+-5 + 13 = 8 (000001000)
+-5 + 14 = 9 (000001001)
+-5 + 15 = 10 (000001010)
+-5 + 16 = 11 (000001011)
+-5 + 17 = 12 (000001100)
+-5 + 18 = 13 (000001101)
+-5 + 19 = 14 (000001110)
+-5 + 20 = 15 (000001111)
+-5 + 21 = 16 (000010000)
+-5 + 22 = 17 (000010001)
+-5 + 23 = 18 (000010010)
+-5 + 24 = 19 (000010011)
+-5 + 25 = 20 (000010100)
+-5 + 26 = 21 (000010101)
+-5 + 27 = 22 (000010110)
+-5 + 28 = 23 (000010111)
+-5 + 29 = 24 (000011000)
+-5 + 30 = 25 (000011001)
+-5 + 31 = 26 (000011010)
+-5 + -32 = -37 (111011011)
+-5 + -31 = -36 (111011100)
+-5 + -30 = -35 (111011101)
+-5 + -29 = -34 (111011110)
+-5 + -28 = -33 (111011111)
+-5 + -27 = -32 (111100000)
+-5 + -26 = -31 (111100001)
+-5 + -25 = -30 (111100010)
+-5 + -24 = -29 (111100011)
+-5 + -23 = -28 (111100100)
+-5 + -22 = -27 (111100101)
+-5 + -21 = -26 (111100110)
+-5 + -20 = -25 (111100111)
+-5 + -19 = -24 (111101000)
+-5 + -18 = -23 (111101001)
+-5 + -17 = -22 (111101010)
+-5 + -16 = -21 (111101011)
+-5 + -15 = -20 (111101100)
+-5 + -14 = -19 (111101101)
+-5 + -13 = -18 (111101110)
+-5 + -12 = -17 (111101111)
+-5 + -11 = -16 (111110000)
+-5 + -10 = -15 (111110001)
+-5 + -9 = -14 (111110010)
+-5 + -8 = -13 (111110011)
+-5 + -7 = -12 (111110100)
+-5 + -6 = -11 (111110101)
+-5 + -5 = -10 (111110110)
+-5 + -4 = -9 (111110111)
+-5 + -3 = -8 (111111000)
+-5 + -2 = -7 (111111001)
+-5 + -1 = -6 (111111010)
+-4 + 0 = -4 (111111100)
+-4 + 1 = -3 (111111101)
+-4 + 2 = -2 (111111110)
+-4 + 3 = -1 (111111111)
+-4 + 4 = 0 (000000000)
+-4 + 5 = 1 (000000001)
+-4 + 6 = 2 (000000010)
+-4 + 7 = 3 (000000011)
+-4 + 8 = 4 (000000100)
+-4 + 9 = 5 (000000101)
+-4 + 10 = 6 (000000110)
+-4 + 11 = 7 (000000111)
+-4 + 12 = 8 (000001000)
+-4 + 13 = 9 (000001001)
+-4 + 14 = 10 (000001010)
+-4 + 15 = 11 (000001011)
+-4 + 16 = 12 (000001100)
+-4 + 17 = 13 (000001101)
+-4 + 18 = 14 (000001110)
+-4 + 19 = 15 (000001111)
+-4 + 20 = 16 (000010000)
+-4 + 21 = 17 (000010001)
+-4 + 22 = 18 (000010010)
+-4 + 23 = 19 (000010011)
+-4 + 24 = 20 (000010100)
+-4 + 25 = 21 (000010101)
+-4 + 26 = 22 (000010110)
+-4 + 27 = 23 (000010111)
+-4 + 28 = 24 (000011000)
+-4 + 29 = 25 (000011001)
+-4 + 30 = 26 (000011010)
+-4 + 31 = 27 (000011011)
+-4 + -32 = -36 (111011100)
+-4 + -31 = -35 (111011101)
+-4 + -30 = -34 (111011110)
+-4 + -29 = -33 (111011111)
+-4 + -28 = -32 (111100000)
+-4 + -27 = -31 (111100001)
+-4 + -26 = -30 (111100010)
+-4 + -25 = -29 (111100011)
+-4 + -24 = -28 (111100100)
+-4 + -23 = -27 (111100101)
+-4 + -22 = -26 (111100110)
+-4 + -21 = -25 (111100111)
+-4 + -20 = -24 (111101000)
+-4 + -19 = -23 (111101001)
+-4 + -18 = -22 (111101010)
+-4 + -17 = -21 (111101011)
+-4 + -16 = -20 (111101100)
+-4 + -15 = -19 (111101101)
+-4 + -14 = -18 (111101110)
+-4 + -13 = -17 (111101111)
+-4 + -12 = -16 (111110000)
+-4 + -11 = -15 (111110001)
+-4 + -10 = -14 (111110010)
+-4 + -9 = -13 (111110011)
+-4 + -8 = -12 (111110100)
+-4 + -7 = -11 (111110101)
+-4 + -6 = -10 (111110110)
+-4 + -5 = -9 (111110111)
+-4 + -4 = -8 (111111000)
+-4 + -3 = -7 (111111001)
+-4 + -2 = -6 (111111010)
+-4 + -1 = -5 (111111011)
+-3 + 0 = -3 (111111101)
+-3 + 1 = -2 (111111110)
+-3 + 2 = -1 (111111111)
+-3 + 3 = 0 (000000000)
+-3 + 4 = 1 (000000001)
+-3 + 5 = 2 (000000010)
+-3 + 6 = 3 (000000011)
+-3 + 7 = 4 (000000100)
+-3 + 8 = 5 (000000101)
+-3 + 9 = 6 (000000110)
+-3 + 10 = 7 (000000111)
+-3 + 11 = 8 (000001000)
+-3 + 12 = 9 (000001001)
+-3 + 13 = 10 (000001010)
+-3 + 14 = 11 (000001011)
+-3 + 15 = 12 (000001100)
+-3 + 16 = 13 (000001101)
+-3 + 17 = 14 (000001110)
+-3 + 18 = 15 (000001111)
+-3 + 19 = 16 (000010000)
+-3 + 20 = 17 (000010001)
+-3 + 21 = 18 (000010010)
+-3 + 22 = 19 (000010011)
+-3 + 23 = 20 (000010100)
+-3 + 24 = 21 (000010101)
+-3 + 25 = 22 (000010110)
+-3 + 26 = 23 (000010111)
+-3 + 27 = 24 (000011000)
+-3 + 28 = 25 (000011001)
+-3 + 29 = 26 (000011010)
+-3 + 30 = 27 (000011011)
+-3 + 31 = 28 (000011100)
+-3 + -32 = -35 (111011101)
+-3 + -31 = -34 (111011110)
+-3 + -30 = -33 (111011111)
+-3 + -29 = -32 (111100000)
+-3 + -28 = -31 (111100001)
+-3 + -27 = -30 (111100010)
+-3 + -26 = -29 (111100011)
+-3 + -25 = -28 (111100100)
+-3 + -24 = -27 (111100101)
+-3 + -23 = -26 (111100110)
+-3 + -22 = -25 (111100111)
+-3 + -21 = -24 (111101000)
+-3 + -20 = -23 (111101001)
+-3 + -19 = -22 (111101010)
+-3 + -18 = -21 (111101011)
+-3 + -17 = -20 (111101100)
+-3 + -16 = -19 (111101101)
+-3 + -15 = -18 (111101110)
+-3 + -14 = -17 (111101111)
+-3 + -13 = -16 (111110000)
+-3 + -12 = -15 (111110001)
+-3 + -11 = -14 (111110010)
+-3 + -10 = -13 (111110011)
+-3 + -9 = -12 (111110100)
+-3 + -8 = -11 (111110101)
+-3 + -7 = -10 (111110110)
+-3 + -6 = -9 (111110111)
+-3 + -5 = -8 (111111000)
+-3 + -4 = -7 (111111001)
+-3 + -3 = -6 (111111010)
+-3 + -2 = -5 (111111011)
+-3 + -1 = -4 (111111100)
+-2 + 0 = -2 (111111110)
+-2 + 1 = -1 (111111111)
+-2 + 2 = 0 (000000000)
+-2 + 3 = 1 (000000001)
+-2 + 4 = 2 (000000010)
+-2 + 5 = 3 (000000011)
+-2 + 6 = 4 (000000100)
+-2 + 7 = 5 (000000101)
+-2 + 8 = 6 (000000110)
+-2 + 9 = 7 (000000111)
+-2 + 10 = 8 (000001000)
+-2 + 11 = 9 (000001001)
+-2 + 12 = 10 (000001010)
+-2 + 13 = 11 (000001011)
+-2 + 14 = 12 (000001100)
+-2 + 15 = 13 (000001101)
+-2 + 16 = 14 (000001110)
+-2 + 17 = 15 (000001111)
+-2 + 18 = 16 (000010000)
+-2 + 19 = 17 (000010001)
+-2 + 20 = 18 (000010010)
+-2 + 21 = 19 (000010011)
+-2 + 22 = 20 (000010100)
+-2 + 23 = 21 (000010101)
+-2 + 24 = 22 (000010110)
+-2 + 25 = 23 (000010111)
+-2 + 26 = 24 (000011000)
+-2 + 27 = 25 (000011001)
+-2 + 28 = 26 (000011010)
+-2 + 29 = 27 (000011011)
+-2 + 30 = 28 (000011100)
+-2 + 31 = 29 (000011101)
+-2 + -32 = -34 (111011110)
+-2 + -31 = -33 (111011111)
+-2 + -30 = -32 (111100000)
+-2 + -29 = -31 (111100001)
+-2 + -28 = -30 (111100010)
+-2 + -27 = -29 (111100011)
+-2 + -26 = -28 (111100100)
+-2 + -25 = -27 (111100101)
+-2 + -24 = -26 (111100110)
+-2 + -23 = -25 (111100111)
+-2 + -22 = -24 (111101000)
+-2 + -21 = -23 (111101001)
+-2 + -20 = -22 (111101010)
+-2 + -19 = -21 (111101011)
+-2 + -18 = -20 (111101100)
+-2 + -17 = -19 (111101101)
+-2 + -16 = -18 (111101110)
+-2 + -15 = -17 (111101111)
+-2 + -14 = -16 (111110000)
+-2 + -13 = -15 (111110001)
+-2 + -12 = -14 (111110010)
+-2 + -11 = -13 (111110011)
+-2 + -10 = -12 (111110100)
+-2 + -9 = -11 (111110101)
+-2 + -8 = -10 (111110110)
+-2 + -7 = -9 (111110111)
+-2 + -6 = -8 (111111000)
+-2 + -5 = -7 (111111001)
+-2 + -4 = -6 (111111010)
+-2 + -3 = -5 (111111011)
+-2 + -2 = -4 (111111100)
+-2 + -1 = -3 (111111101)
+-1 + 0 = -1 (111111111)
+-1 + 1 = 0 (000000000)
+-1 + 2 = 1 (000000001)
+-1 + 3 = 2 (000000010)
+-1 + 4 = 3 (000000011)
+-1 + 5 = 4 (000000100)
+-1 + 6 = 5 (000000101)
+-1 + 7 = 6 (000000110)
+-1 + 8 = 7 (000000111)
+-1 + 9 = 8 (000001000)
+-1 + 10 = 9 (000001001)
+-1 + 11 = 10 (000001010)
+-1 + 12 = 11 (000001011)
+-1 + 13 = 12 (000001100)
+-1 + 14 = 13 (000001101)
+-1 + 15 = 14 (000001110)
+-1 + 16 = 15 (000001111)
+-1 + 17 = 16 (000010000)
+-1 + 18 = 17 (000010001)
+-1 + 19 = 18 (000010010)
+-1 + 20 = 19 (000010011)
+-1 + 21 = 20 (000010100)
+-1 + 22 = 21 (000010101)
+-1 + 23 = 22 (000010110)
+-1 + 24 = 23 (000010111)
+-1 + 25 = 24 (000011000)
+-1 + 26 = 25 (000011001)
+-1 + 27 = 26 (000011010)
+-1 + 28 = 27 (000011011)
+-1 + 29 = 28 (000011100)
+-1 + 30 = 29 (000011101)
+-1 + 31 = 30 (000011110)
+-1 + -32 = -33 (111011111)
+-1 + -31 = -32 (111100000)
+-1 + -30 = -31 (111100001)
+-1 + -29 = -30 (111100010)
+-1 + -28 = -29 (111100011)
+-1 + -27 = -28 (111100100)
+-1 + -26 = -27 (111100101)
+-1 + -25 = -26 (111100110)
+-1 + -24 = -25 (111100111)
+-1 + -23 = -24 (111101000)
+-1 + -22 = -23 (111101001)
+-1 + -21 = -22 (111101010)
+-1 + -20 = -21 (111101011)
+-1 + -19 = -20 (111101100)
+-1 + -18 = -19 (111101101)
+-1 + -17 = -18 (111101110)
+-1 + -16 = -17 (111101111)
+-1 + -15 = -16 (111110000)
+-1 + -14 = -15 (111110001)
+-1 + -13 = -14 (111110010)
+-1 + -12 = -13 (111110011)
+-1 + -11 = -12 (111110100)
+-1 + -10 = -11 (111110101)
+-1 + -9 = -10 (111110110)
+-1 + -8 = -9 (111110111)
+-1 + -7 = -8 (111111000)
+-1 + -6 = -7 (111111001)
+-1 + -5 = -6 (111111010)
+-1 + -4 = -5 (111111011)
+-1 + -3 = -4 (111111100)
+-1 + -2 = -3 (111111101)
+-1 + -1 = -2 (111111110)
+0 + 0 = 0 (000000000)
+0 + 1 = 1 (000000001)
+0 + 2 = 2 (000000010)
+0 + 3 = 3 (000000011)
+0 + 4 = 4 (000000100)
+0 + 5 = 5 (000000101)
+0 + 6 = 6 (000000110)
+0 + 7 = 7 (000000111)
+0 + 8 = 8 (000001000)
+0 + 9 = 9 (000001001)
+0 + 10 = 10 (000001010)
+0 + 11 = 11 (000001011)
+0 + 12 = 12 (000001100)
+0 + 13 = 13 (000001101)
+0 + 14 = 14 (000001110)
+0 + 15 = 15 (000001111)
+0 + 16 = 16 (000010000)
+0 + 17 = 17 (000010001)
+0 + 18 = 18 (000010010)
+0 + 19 = 19 (000010011)
+0 + 20 = 20 (000010100)
+0 + 21 = 21 (000010101)
+0 + 22 = 22 (000010110)
+0 + 23 = 23 (000010111)
+0 + 24 = 24 (000011000)
+0 + 25 = 25 (000011001)
+0 + 26 = 26 (000011010)
+0 + 27 = 27 (000011011)
+0 + 28 = 28 (000011100)
+0 + 29 = 29 (000011101)
+0 + 30 = 30 (000011110)
+0 + 31 = 31 (000011111)
+0 + -32 = -32 (111100000)
+0 + -31 = -31 (111100001)
+0 + -30 = -30 (111100010)
+0 + -29 = -29 (111100011)
+0 + -28 = -28 (111100100)
+0 + -27 = -27 (111100101)
+0 + -26 = -26 (111100110)
+0 + -25 = -25 (111100111)
+0 + -24 = -24 (111101000)
+0 + -23 = -23 (111101001)
+0 + -22 = -22 (111101010)
+0 + -21 = -21 (111101011)
+0 + -20 = -20 (111101100)
+0 + -19 = -19 (111101101)
+0 + -18 = -18 (111101110)
+0 + -17 = -17 (111101111)
+0 + -16 = -16 (111110000)
+0 + -15 = -15 (111110001)
+0 + -14 = -14 (111110010)
+0 + -13 = -13 (111110011)
+0 + -12 = -12 (111110100)
+0 + -11 = -11 (111110101)
+0 + -10 = -10 (111110110)
+0 + -9 = -9 (111110111)
+0 + -8 = -8 (111111000)
+0 + -7 = -7 (111111001)
+0 + -6 = -6 (111111010)
+0 + -5 = -5 (111111011)
+0 + -4 = -4 (111111100)
+0 + -3 = -3 (111111101)
+0 + -2 = -2 (111111110)
+0 + -1 = -1 (111111111)
+1 + 0 = 1 (000000001)
+1 + 1 = 2 (000000010)
+1 + 2 = 3 (000000011)
+1 + 3 = 4 (000000100)
+1 + 4 = 5 (000000101)
+1 + 5 = 6 (000000110)
+1 + 6 = 7 (000000111)
+1 + 7 = 8 (000001000)
+1 + 8 = 9 (000001001)
+1 + 9 = 10 (000001010)
+1 + 10 = 11 (000001011)
+1 + 11 = 12 (000001100)
+1 + 12 = 13 (000001101)
+1 + 13 = 14 (000001110)
+1 + 14 = 15 (000001111)
+1 + 15 = 16 (000010000)
+1 + 16 = 17 (000010001)
+1 + 17 = 18 (000010010)
+1 + 18 = 19 (000010011)
+1 + 19 = 20 (000010100)
+1 + 20 = 21 (000010101)
+1 + 21 = 22 (000010110)
+1 + 22 = 23 (000010111)
+1 + 23 = 24 (000011000)
+1 + 24 = 25 (000011001)
+1 + 25 = 26 (000011010)
+1 + 26 = 27 (000011011)
+1 + 27 = 28 (000011100)
+1 + 28 = 29 (000011101)
+1 + 29 = 30 (000011110)
+1 + 30 = 31 (000011111)
+1 + 31 = 32 (000100000)
+1 + -32 = -31 (111100001)
+1 + -31 = -30 (111100010)
+1 + -30 = -29 (111100011)
+1 + -29 = -28 (111100100)
+1 + -28 = -27 (111100101)
+1 + -27 = -26 (111100110)
+1 + -26 = -25 (111100111)
+1 + -25 = -24 (111101000)
+1 + -24 = -23 (111101001)
+1 + -23 = -22 (111101010)
+1 + -22 = -21 (111101011)
+1 + -21 = -20 (111101100)
+1 + -20 = -19 (111101101)
+1 + -19 = -18 (111101110)
+1 + -18 = -17 (111101111)
+1 + -17 = -16 (111110000)
+1 + -16 = -15 (111110001)
+1 + -15 = -14 (111110010)
+1 + -14 = -13 (111110011)
+1 + -13 = -12 (111110100)
+1 + -12 = -11 (111110101)
+1 + -11 = -10 (111110110)
+1 + -10 = -9 (111110111)
+1 + -9 = -8 (111111000)
+1 + -8 = -7 (111111001)
+1 + -7 = -6 (111111010)
+1 + -6 = -5 (111111011)
+1 + -5 = -4 (111111100)
+1 + -4 = -3 (111111101)
+1 + -3 = -2 (111111110)
+1 + -2 = -1 (111111111)
+1 + -1 = 0 (000000000)
+2 + 0 = 2 (000000010)
+2 + 1 = 3 (000000011)
+2 + 2 = 4 (000000100)
+2 + 3 = 5 (000000101)
+2 + 4 = 6 (000000110)
+2 + 5 = 7 (000000111)
+2 + 6 = 8 (000001000)
+2 + 7 = 9 (000001001)
+2 + 8 = 10 (000001010)
+2 + 9 = 11 (000001011)
+2 + 10 = 12 (000001100)
+2 + 11 = 13 (000001101)
+2 + 12 = 14 (000001110)
+2 + 13 = 15 (000001111)
+2 + 14 = 16 (000010000)
+2 + 15 = 17 (000010001)
+2 + 16 = 18 (000010010)
+2 + 17 = 19 (000010011)
+2 + 18 = 20 (000010100)
+2 + 19 = 21 (000010101)
+2 + 20 = 22 (000010110)
+2 + 21 = 23 (000010111)
+2 + 22 = 24 (000011000)
+2 + 23 = 25 (000011001)
+2 + 24 = 26 (000011010)
+2 + 25 = 27 (000011011)
+2 + 26 = 28 (000011100)
+2 + 27 = 29 (000011101)
+2 + 28 = 30 (000011110)
+2 + 29 = 31 (000011111)
+2 + 30 = 32 (000100000)
+2 + 31 = 33 (000100001)
+2 + -32 = -30 (111100010)
+2 + -31 = -29 (111100011)
+2 + -30 = -28 (111100100)
+2 + -29 = -27 (111100101)
+2 + -28 = -26 (111100110)
+2 + -27 = -25 (111100111)
+2 + -26 = -24 (111101000)
+2 + -25 = -23 (111101001)
+2 + -24 = -22 (111101010)
+2 + -23 = -21 (111101011)
+2 + -22 = -20 (111101100)
+2 + -21 = -19 (111101101)
+2 + -20 = -18 (111101110)
+2 + -19 = -17 (111101111)
+2 + -18 = -16 (111110000)
+2 + -17 = -15 (111110001)
+2 + -16 = -14 (111110010)
+2 + -15 = -13 (111110011)
+2 + -14 = -12 (111110100)
+2 + -13 = -11 (111110101)
+2 + -12 = -10 (111110110)
+2 + -11 = -9 (111110111)
+2 + -10 = -8 (111111000)
+2 + -9 = -7 (111111001)
+2 + -8 = -6 (111111010)
+2 + -7 = -5 (111111011)
+2 + -6 = -4 (111111100)
+2 + -5 = -3 (111111101)
+2 + -4 = -2 (111111110)
+2 + -3 = -1 (111111111)
+2 + -2 = 0 (000000000)
+2 + -1 = 1 (000000001)
+3 + 0 = 3 (000000011)
+3 + 1 = 4 (000000100)
+3 + 2 = 5 (000000101)
+3 + 3 = 6 (000000110)
+3 + 4 = 7 (000000111)
+3 + 5 = 8 (000001000)
+3 + 6 = 9 (000001001)
+3 + 7 = 10 (000001010)
+3 + 8 = 11 (000001011)
+3 + 9 = 12 (000001100)
+3 + 10 = 13 (000001101)
+3 + 11 = 14 (000001110)
+3 + 12 = 15 (000001111)
+3 + 13 = 16 (000010000)
+3 + 14 = 17 (000010001)
+3 + 15 = 18 (000010010)
+3 + 16 = 19 (000010011)
+3 + 17 = 20 (000010100)
+3 + 18 = 21 (000010101)
+3 + 19 = 22 (000010110)
+3 + 20 = 23 (000010111)
+3 + 21 = 24 (000011000)
+3 + 22 = 25 (000011001)
+3 + 23 = 26 (000011010)
+3 + 24 = 27 (000011011)
+3 + 25 = 28 (000011100)
+3 + 26 = 29 (000011101)
+3 + 27 = 30 (000011110)
+3 + 28 = 31 (000011111)
+3 + 29 = 32 (000100000)
+3 + 30 = 33 (000100001)
+3 + 31 = 34 (000100010)
+3 + -32 = -29 (111100011)
+3 + -31 = -28 (111100100)
+3 + -30 = -27 (111100101)
+3 + -29 = -26 (111100110)
+3 + -28 = -25 (111100111)
+3 + -27 = -24 (111101000)
+3 + -26 = -23 (111101001)
+3 + -25 = -22 (111101010)
+3 + -24 = -21 (111101011)
+3 + -23 = -20 (111101100)
+3 + -22 = -19 (111101101)
+3 + -21 = -18 (111101110)
+3 + -20 = -17 (111101111)
+3 + -19 = -16 (111110000)
+3 + -18 = -15 (111110001)
+3 + -17 = -14 (111110010)
+3 + -16 = -13 (111110011)
+3 + -15 = -12 (111110100)
+3 + -14 = -11 (111110101)
+3 + -13 = -10 (111110110)
+3 + -12 = -9 (111110111)
+3 + -11 = -8 (111111000)
+3 + -10 = -7 (111111001)
+3 + -9 = -6 (111111010)
+3 + -8 = -5 (111111011)
+3 + -7 = -4 (111111100)
+3 + -6 = -3 (111111101)
+3 + -5 = -2 (111111110)
+3 + -4 = -1 (111111111)
+3 + -3 = 0 (000000000)
+3 + -2 = 1 (000000001)
+3 + -1 = 2 (000000010)
+4 + 0 = 4 (000000100)
+4 + 1 = 5 (000000101)
+4 + 2 = 6 (000000110)
+4 + 3 = 7 (000000111)
+4 + 4 = 8 (000001000)
+4 + 5 = 9 (000001001)
+4 + 6 = 10 (000001010)
+4 + 7 = 11 (000001011)
+4 + 8 = 12 (000001100)
+4 + 9 = 13 (000001101)
+4 + 10 = 14 (000001110)
+4 + 11 = 15 (000001111)
+4 + 12 = 16 (000010000)
+4 + 13 = 17 (000010001)
+4 + 14 = 18 (000010010)
+4 + 15 = 19 (000010011)
+4 + 16 = 20 (000010100)
+4 + 17 = 21 (000010101)
+4 + 18 = 22 (000010110)
+4 + 19 = 23 (000010111)
+4 + 20 = 24 (000011000)
+4 + 21 = 25 (000011001)
+4 + 22 = 26 (000011010)
+4 + 23 = 27 (000011011)
+4 + 24 = 28 (000011100)
+4 + 25 = 29 (000011101)
+4 + 26 = 30 (000011110)
+4 + 27 = 31 (000011111)
+4 + 28 = 32 (000100000)
+4 + 29 = 33 (000100001)
+4 + 30 = 34 (000100010)
+4 + 31 = 35 (000100011)
+4 + -32 = -28 (111100100)
+4 + -31 = -27 (111100101)
+4 + -30 = -26 (111100110)
+4 + -29 = -25 (111100111)
+4 + -28 = -24 (111101000)
+4 + -27 = -23 (111101001)
+4 + -26 = -22 (111101010)
+4 + -25 = -21 (111101011)
+4 + -24 = -20 (111101100)
+4 + -23 = -19 (111101101)
+4 + -22 = -18 (111101110)
+4 + -21 = -17 (111101111)
+4 + -20 = -16 (111110000)
+4 + -19 = -15 (111110001)
+4 + -18 = -14 (111110010)
+4 + -17 = -13 (111110011)
+4 + -16 = -12 (111110100)
+4 + -15 = -11 (111110101)
+4 + -14 = -10 (111110110)
+4 + -13 = -9 (111110111)
+4 + -12 = -8 (111111000)
+4 + -11 = -7 (111111001)
+4 + -10 = -6 (111111010)
+4 + -9 = -5 (111111011)
+4 + -8 = -4 (111111100)
+4 + -7 = -3 (111111101)
+4 + -6 = -2 (111111110)
+4 + -5 = -1 (111111111)
+4 + -4 = 0 (000000000)
+4 + -3 = 1 (000000001)
+4 + -2 = 2 (000000010)
+4 + -1 = 3 (000000011)
+5 + 0 = 5 (000000101)
+5 + 1 = 6 (000000110)
+5 + 2 = 7 (000000111)
+5 + 3 = 8 (000001000)
+5 + 4 = 9 (000001001)
+5 + 5 = 10 (000001010)
+5 + 6 = 11 (000001011)
+5 + 7 = 12 (000001100)
+5 + 8 = 13 (000001101)
+5 + 9 = 14 (000001110)
+5 + 10 = 15 (000001111)
+5 + 11 = 16 (000010000)
+5 + 12 = 17 (000010001)
+5 + 13 = 18 (000010010)
+5 + 14 = 19 (000010011)
+5 + 15 = 20 (000010100)
+5 + 16 = 21 (000010101)
+5 + 17 = 22 (000010110)
+5 + 18 = 23 (000010111)
+5 + 19 = 24 (000011000)
+5 + 20 = 25 (000011001)
+5 + 21 = 26 (000011010)
+5 + 22 = 27 (000011011)
+5 + 23 = 28 (000011100)
+5 + 24 = 29 (000011101)
+5 + 25 = 30 (000011110)
+5 + 26 = 31 (000011111)
+5 + 27 = 32 (000100000)
+5 + 28 = 33 (000100001)
+5 + 29 = 34 (000100010)
+5 + 30 = 35 (000100011)
+5 + 31 = 36 (000100100)
+5 + -32 = -27 (111100101)
+5 + -31 = -26 (111100110)
+5 + -30 = -25 (111100111)
+5 + -29 = -24 (111101000)
+5 + -28 = -23 (111101001)
+5 + -27 = -22 (111101010)
+5 + -26 = -21 (111101011)
+5 + -25 = -20 (111101100)
+5 + -24 = -19 (111101101)
+5 + -23 = -18 (111101110)
+5 + -22 = -17 (111101111)
+5 + -21 = -16 (111110000)
+5 + -20 = -15 (111110001)
+5 + -19 = -14 (111110010)
+5 + -18 = -13 (111110011)
+5 + -17 = -12 (111110100)
+5 + -16 = -11 (111110101)
+5 + -15 = -10 (111110110)
+5 + -14 = -9 (111110111)
+5 + -13 = -8 (111111000)
+5 + -12 = -7 (111111001)
+5 + -11 = -6 (111111010)
+5 + -10 = -5 (111111011)
+5 + -9 = -4 (111111100)
+5 + -8 = -3 (111111101)
+5 + -7 = -2 (111111110)
+5 + -6 = -1 (111111111)
+5 + -5 = 0 (000000000)
+5 + -4 = 1 (000000001)
+5 + -3 = 2 (000000010)
+5 + -2 = 3 (000000011)
+5 + -1 = 4 (000000100)
+6 + 0 = 6 (000000110)
+6 + 1 = 7 (000000111)
+6 + 2 = 8 (000001000)
+6 + 3 = 9 (000001001)
+6 + 4 = 10 (000001010)
+6 + 5 = 11 (000001011)
+6 + 6 = 12 (000001100)
+6 + 7 = 13 (000001101)
+6 + 8 = 14 (000001110)
+6 + 9 = 15 (000001111)
+6 + 10 = 16 (000010000)
+6 + 11 = 17 (000010001)
+6 + 12 = 18 (000010010)
+6 + 13 = 19 (000010011)
+6 + 14 = 20 (000010100)
+6 + 15 = 21 (000010101)
+6 + 16 = 22 (000010110)
+6 + 17 = 23 (000010111)
+6 + 18 = 24 (000011000)
+6 + 19 = 25 (000011001)
+6 + 20 = 26 (000011010)
+6 + 21 = 27 (000011011)
+6 + 22 = 28 (000011100)
+6 + 23 = 29 (000011101)
+6 + 24 = 30 (000011110)
+6 + 25 = 31 (000011111)
+6 + 26 = 32 (000100000)
+6 + 27 = 33 (000100001)
+6 + 28 = 34 (000100010)
+6 + 29 = 35 (000100011)
+6 + 30 = 36 (000100100)
+6 + 31 = 37 (000100101)
+6 + -32 = -26 (111100110)
+6 + -31 = -25 (111100111)
+6 + -30 = -24 (111101000)
+6 + -29 = -23 (111101001)
+6 + -28 = -22 (111101010)
+6 + -27 = -21 (111101011)
+6 + -26 = -20 (111101100)
+6 + -25 = -19 (111101101)
+6 + -24 = -18 (111101110)
+6 + -23 = -17 (111101111)
+6 + -22 = -16 (111110000)
+6 + -21 = -15 (111110001)
+6 + -20 = -14 (111110010)
+6 + -19 = -13 (111110011)
+6 + -18 = -12 (111110100)
+6 + -17 = -11 (111110101)
+6 + -16 = -10 (111110110)
+6 + -15 = -9 (111110111)
+6 + -14 = -8 (111111000)
+6 + -13 = -7 (111111001)
+6 + -12 = -6 (111111010)
+6 + -11 = -5 (111111011)
+6 + -10 = -4 (111111100)
+6 + -9 = -3 (111111101)
+6 + -8 = -2 (111111110)
+6 + -7 = -1 (111111111)
+6 + -6 = 0 (000000000)
+6 + -5 = 1 (000000001)
+6 + -4 = 2 (000000010)
+6 + -3 = 3 (000000011)
+6 + -2 = 4 (000000100)
+6 + -1 = 5 (000000101)
+7 + 0 = 7 (000000111)
+7 + 1 = 8 (000001000)
+7 + 2 = 9 (000001001)
+7 + 3 = 10 (000001010)
+7 + 4 = 11 (000001011)
+7 + 5 = 12 (000001100)
+7 + 6 = 13 (000001101)
+7 + 7 = 14 (000001110)
+7 + 8 = 15 (000001111)
+7 + 9 = 16 (000010000)
+7 + 10 = 17 (000010001)
+7 + 11 = 18 (000010010)
+7 + 12 = 19 (000010011)
+7 + 13 = 20 (000010100)
+7 + 14 = 21 (000010101)
+7 + 15 = 22 (000010110)
+7 + 16 = 23 (000010111)
+7 + 17 = 24 (000011000)
+7 + 18 = 25 (000011001)
+7 + 19 = 26 (000011010)
+7 + 20 = 27 (000011011)
+7 + 21 = 28 (000011100)
+7 + 22 = 29 (000011101)
+7 + 23 = 30 (000011110)
+7 + 24 = 31 (000011111)
+7 + 25 = 32 (000100000)
+7 + 26 = 33 (000100001)
+7 + 27 = 34 (000100010)
+7 + 28 = 35 (000100011)
+7 + 29 = 36 (000100100)
+7 + 30 = 37 (000100101)
+7 + 31 = 38 (000100110)
+7 + -32 = -25 (111100111)
+7 + -31 = -24 (111101000)
+7 + -30 = -23 (111101001)
+7 + -29 = -22 (111101010)
+7 + -28 = -21 (111101011)
+7 + -27 = -20 (111101100)
+7 + -26 = -19 (111101101)
+7 + -25 = -18 (111101110)
+7 + -24 = -17 (111101111)
+7 + -23 = -16 (111110000)
+7 + -22 = -15 (111110001)
+7 + -21 = -14 (111110010)
+7 + -20 = -13 (111110011)
+7 + -19 = -12 (111110100)
+7 + -18 = -11 (111110101)
+7 + -17 = -10 (111110110)
+7 + -16 = -9 (111110111)
+7 + -15 = -8 (111111000)
+7 + -14 = -7 (111111001)
+7 + -13 = -6 (111111010)
+7 + -12 = -5 (111111011)
+7 + -11 = -4 (111111100)
+7 + -10 = -3 (111111101)
+7 + -9 = -2 (111111110)
+7 + -8 = -1 (111111111)
+7 + -7 = 0 (000000000)
+7 + -6 = 1 (000000001)
+7 + -5 = 2 (000000010)
+7 + -4 = 3 (000000011)
+7 + -3 = 4 (000000100)
+7 + -2 = 5 (000000101)
+7 + -1 = 6 (000000110)
+-8 + 0 = -8 (111111000)
+-8 + 1 = -7 (111111001)
+-8 + 2 = -6 (111111010)
+-8 + 3 = -5 (111111011)
+-8 + 4 = -4 (111111100)
+-8 + 5 = -3 (111111101)
+-8 + 6 = -2 (111111110)
+-8 + 7 = -1 (111111111)
+-8 + 8 = 0 (000000000)
+-8 + 9 = 1 (000000001)
+-8 + 10 = 2 (000000010)
+-8 + 11 = 3 (000000011)
+-8 + 12 = 4 (000000100)
+-8 + 13 = 5 (000000101)
+-8 + 14 = 6 (000000110)
+-8 + 15 = 7 (000000111)
+-8 + 16 = 8 (000001000)
+-8 + 17 = 9 (000001001)
+-8 + 18 = 10 (000001010)
+-8 + 19 = 11 (000001011)
+-8 + 20 = 12 (000001100)
+-8 + 21 = 13 (000001101)
+-8 + 22 = 14 (000001110)
+-8 + 23 = 15 (000001111)
+-8 + 24 = 16 (000010000)
+-8 + 25 = 17 (000010001)
+-8 + 26 = 18 (000010010)
+-8 + 27 = 19 (000010011)
+-8 + 28 = 20 (000010100)
+-8 + 29 = 21 (000010101)
+-8 + 30 = 22 (000010110)
+-8 + 31 = 23 (000010111)
+-8 + -32 = -40 (111011000)
+-8 + -31 = -39 (111011001)
+-8 + -30 = -38 (111011010)
+-8 + -29 = -37 (111011011)
+-8 + -28 = -36 (111011100)
+-8 + -27 = -35 (111011101)
+-8 + -26 = -34 (111011110)
+-8 + -25 = -33 (111011111)
+-8 + -24 = -32 (111100000)
+-8 + -23 = -31 (111100001)
+-8 + -22 = -30 (111100010)
+-8 + -21 = -29 (111100011)
+-8 + -20 = -28 (111100100)
+-8 + -19 = -27 (111100101)
+-8 + -18 = -26 (111100110)
+-8 + -17 = -25 (111100111)
+-8 + -16 = -24 (111101000)
+-8 + -15 = -23 (111101001)
+-8 + -14 = -22 (111101010)
+-8 + -13 = -21 (111101011)
+-8 + -12 = -20 (111101100)
+-8 + -11 = -19 (111101101)
+-8 + -10 = -18 (111101110)
+-8 + -9 = -17 (111101111)
+-8 + -8 = -16 (111110000)
+-8 + -7 = -15 (111110001)
+-8 + -6 = -14 (111110010)
+-8 + -5 = -13 (111110011)
+-8 + -4 = -12 (111110100)
+-8 + -3 = -11 (111110101)
+-8 + -2 = -10 (111110110)
+-8 + -1 = -9 (111110111)
+-7 + 0 = -7 (111111001)
+-7 + 1 = -6 (111111010)
+-7 + 2 = -5 (111111011)
+-7 + 3 = -4 (111111100)
+-7 + 4 = -3 (111111101)
+-7 + 5 = -2 (111111110)
+-7 + 6 = -1 (111111111)
+-7 + 7 = 0 (000000000)
+-7 + 8 = 1 (000000001)
+-7 + 9 = 2 (000000010)
+-7 + 10 = 3 (000000011)
+-7 + 11 = 4 (000000100)
+-7 + 12 = 5 (000000101)
+-7 + 13 = 6 (000000110)
+-7 + 14 = 7 (000000111)
+-7 + 15 = 8 (000001000)
+-7 + 16 = 9 (000001001)
+-7 + 17 = 10 (000001010)
+-7 + 18 = 11 (000001011)
+-7 + 19 = 12 (000001100)
+-7 + 20 = 13 (000001101)
+-7 + 21 = 14 (000001110)
+-7 + 22 = 15 (000001111)
+-7 + 23 = 16 (000010000)
+-7 + 24 = 17 (000010001)
+-7 + 25 = 18 (000010010)
+-7 + 26 = 19 (000010011)
+-7 + 27 = 20 (000010100)
+-7 + 28 = 21 (000010101)
+-7 + 29 = 22 (000010110)
+-7 + 30 = 23 (000010111)
+-7 + 31 = 24 (000011000)
+-7 + -32 = -39 (111011001)
+-7 + -31 = -38 (111011010)
+-7 + -30 = -37 (111011011)
+-7 + -29 = -36 (111011100)
+-7 + -28 = -35 (111011101)
+-7 + -27 = -34 (111011110)
+-7 + -26 = -33 (111011111)
+-7 + -25 = -32 (111100000)
+-7 + -24 = -31 (111100001)
+-7 + -23 = -30 (111100010)
+-7 + -22 = -29 (111100011)
+-7 + -21 = -28 (111100100)
+-7 + -20 = -27 (111100101)
+-7 + -19 = -26 (111100110)
+-7 + -18 = -25 (111100111)
+-7 + -17 = -24 (111101000)
+-7 + -16 = -23 (111101001)
+-7 + -15 = -22 (111101010)
+-7 + -14 = -21 (111101011)
+-7 + -13 = -20 (111101100)
+-7 + -12 = -19 (111101101)
+-7 + -11 = -18 (111101110)
+-7 + -10 = -17 (111101111)
+-7 + -9 = -16 (111110000)
+-7 + -8 = -15 (111110001)
+-7 + -7 = -14 (111110010)
+-7 + -6 = -13 (111110011)
+-7 + -5 = -12 (111110100)
+-7 + -4 = -11 (111110101)
+-7 + -3 = -10 (111110110)
+-7 + -2 = -9 (111110111)
+-7 + -1 = -8 (111111000)
+-6 + 0 = -6 (111111010)
+-6 + 1 = -5 (111111011)
+-6 + 2 = -4 (111111100)
+-6 + 3 = -3 (111111101)
+-6 + 4 = -2 (111111110)
+-6 + 5 = -1 (111111111)
+-6 + 6 = 0 (000000000)
+-6 + 7 = 1 (000000001)
+-6 + 8 = 2 (000000010)
+-6 + 9 = 3 (000000011)
+-6 + 10 = 4 (000000100)
+-6 + 11 = 5 (000000101)
+-6 + 12 = 6 (000000110)
+-6 + 13 = 7 (000000111)
+-6 + 14 = 8 (000001000)
+-6 + 15 = 9 (000001001)
+-6 + 16 = 10 (000001010)
+-6 + 17 = 11 (000001011)
+-6 + 18 = 12 (000001100)
+-6 + 19 = 13 (000001101)
+-6 + 20 = 14 (000001110)
+-6 + 21 = 15 (000001111)
+-6 + 22 = 16 (000010000)
+-6 + 23 = 17 (000010001)
+-6 + 24 = 18 (000010010)
+-6 + 25 = 19 (000010011)
+-6 + 26 = 20 (000010100)
+-6 + 27 = 21 (000010101)
+-6 + 28 = 22 (000010110)
+-6 + 29 = 23 (000010111)
+-6 + 30 = 24 (000011000)
+-6 + 31 = 25 (000011001)
+-6 + -32 = -38 (111011010)
+-6 + -31 = -37 (111011011)
+-6 + -30 = -36 (111011100)
+-6 + -29 = -35 (111011101)
+-6 + -28 = -34 (111011110)
+-6 + -27 = -33 (111011111)
+-6 + -26 = -32 (111100000)
+-6 + -25 = -31 (111100001)
+-6 + -24 = -30 (111100010)
+-6 + -23 = -29 (111100011)
+-6 + -22 = -28 (111100100)
+-6 + -21 = -27 (111100101)
+-6 + -20 = -26 (111100110)
+-6 + -19 = -25 (111100111)
+-6 + -18 = -24 (111101000)
+-6 + -17 = -23 (111101001)
+-6 + -16 = -22 (111101010)
+-6 + -15 = -21 (111101011)
+-6 + -14 = -20 (111101100)
+-6 + -13 = -19 (111101101)
+-6 + -12 = -18 (111101110)
+-6 + -11 = -17 (111101111)
+-6 + -10 = -16 (111110000)
+-6 + -9 = -15 (111110001)
+-6 + -8 = -14 (111110010)
+-6 + -7 = -13 (111110011)
+-6 + -6 = -12 (111110100)
+-6 + -5 = -11 (111110101)
+-6 + -4 = -10 (111110110)
+-6 + -3 = -9 (111110111)
+-6 + -2 = -8 (111111000)
+-6 + -1 = -7 (111111001)
+-5 + 0 = -5 (111111011)
+-5 + 1 = -4 (111111100)
+-5 + 2 = -3 (111111101)
+-5 + 3 = -2 (111111110)
+-5 + 4 = -1 (111111111)
+-5 + 5 = 0 (000000000)
+-5 + 6 = 1 (000000001)
+-5 + 7 = 2 (000000010)
+-5 + 8 = 3 (000000011)
+-5 + 9 = 4 (000000100)
+-5 + 10 = 5 (000000101)
+-5 + 11 = 6 (000000110)
+-5 + 12 = 7 (000000111)
+-5 + 13 = 8 (000001000)
+-5 + 14 = 9 (000001001)
+-5 + 15 = 10 (000001010)
+-5 + 16 = 11 (000001011)
+-5 + 17 = 12 (000001100)
+-5 + 18 = 13 (000001101)
+-5 + 19 = 14 (000001110)
+-5 + 20 = 15 (000001111)
+-5 + 21 = 16 (000010000)
+-5 + 22 = 17 (000010001)
+-5 + 23 = 18 (000010010)
+-5 + 24 = 19 (000010011)
+-5 + 25 = 20 (000010100)
+-5 + 26 = 21 (000010101)
+-5 + 27 = 22 (000010110)
+-5 + 28 = 23 (000010111)
+-5 + 29 = 24 (000011000)
+-5 + 30 = 25 (000011001)
+-5 + 31 = 26 (000011010)
+-5 + -32 = -37 (111011011)
+-5 + -31 = -36 (111011100)
+-5 + -30 = -35 (111011101)
+-5 + -29 = -34 (111011110)
+-5 + -28 = -33 (111011111)
+-5 + -27 = -32 (111100000)
+-5 + -26 = -31 (111100001)
+-5 + -25 = -30 (111100010)
+-5 + -24 = -29 (111100011)
+-5 + -23 = -28 (111100100)
+-5 + -22 = -27 (111100101)
+-5 + -21 = -26 (111100110)
+-5 + -20 = -25 (111100111)
+-5 + -19 = -24 (111101000)
+-5 + -18 = -23 (111101001)
+-5 + -17 = -22 (111101010)
+-5 + -16 = -21 (111101011)
+-5 + -15 = -20 (111101100)
+-5 + -14 = -19 (111101101)
+-5 + -13 = -18 (111101110)
+-5 + -12 = -17 (111101111)
+-5 + -11 = -16 (111110000)
+-5 + -10 = -15 (111110001)
+-5 + -9 = -14 (111110010)
+-5 + -8 = -13 (111110011)
+-5 + -7 = -12 (111110100)
+-5 + -6 = -11 (111110101)
+-5 + -5 = -10 (111110110)
+-5 + -4 = -9 (111110111)
+-5 + -3 = -8 (111111000)
+-5 + -2 = -7 (111111001)
+-5 + -1 = -6 (111111010)
+-4 + 0 = -4 (111111100)
+-4 + 1 = -3 (111111101)
+-4 + 2 = -2 (111111110)
+-4 + 3 = -1 (111111111)
+-4 + 4 = 0 (000000000)
+-4 + 5 = 1 (000000001)
+-4 + 6 = 2 (000000010)
+-4 + 7 = 3 (000000011)
+-4 + 8 = 4 (000000100)
+-4 + 9 = 5 (000000101)
+-4 + 10 = 6 (000000110)
+-4 + 11 = 7 (000000111)
+-4 + 12 = 8 (000001000)
+-4 + 13 = 9 (000001001)
+-4 + 14 = 10 (000001010)
+-4 + 15 = 11 (000001011)
+-4 + 16 = 12 (000001100)
+-4 + 17 = 13 (000001101)
+-4 + 18 = 14 (000001110)
+-4 + 19 = 15 (000001111)
+-4 + 20 = 16 (000010000)
+-4 + 21 = 17 (000010001)
+-4 + 22 = 18 (000010010)
+-4 + 23 = 19 (000010011)
+-4 + 24 = 20 (000010100)
+-4 + 25 = 21 (000010101)
+-4 + 26 = 22 (000010110)
+-4 + 27 = 23 (000010111)
+-4 + 28 = 24 (000011000)
+-4 + 29 = 25 (000011001)
+-4 + 30 = 26 (000011010)
+-4 + 31 = 27 (000011011)
+-4 + -32 = -36 (111011100)
+-4 + -31 = -35 (111011101)
+-4 + -30 = -34 (111011110)
+-4 + -29 = -33 (111011111)
+-4 + -28 = -32 (111100000)
+-4 + -27 = -31 (111100001)
+-4 + -26 = -30 (111100010)
+-4 + -25 = -29 (111100011)
+-4 + -24 = -28 (111100100)
+-4 + -23 = -27 (111100101)
+-4 + -22 = -26 (111100110)
+-4 + -21 = -25 (111100111)
+-4 + -20 = -24 (111101000)
+-4 + -19 = -23 (111101001)
+-4 + -18 = -22 (111101010)
+-4 + -17 = -21 (111101011)
+-4 + -16 = -20 (111101100)
+-4 + -15 = -19 (111101101)
+-4 + -14 = -18 (111101110)
+-4 + -13 = -17 (111101111)
+-4 + -12 = -16 (111110000)
+-4 + -11 = -15 (111110001)
+-4 + -10 = -14 (111110010)
+-4 + -9 = -13 (111110011)
+-4 + -8 = -12 (111110100)
+-4 + -7 = -11 (111110101)
+-4 + -6 = -10 (111110110)
+-4 + -5 = -9 (111110111)
+-4 + -4 = -8 (111111000)
+-4 + -3 = -7 (111111001)
+-4 + -2 = -6 (111111010)
+-4 + -1 = -5 (111111011)
+-3 + 0 = -3 (111111101)
+-3 + 1 = -2 (111111110)
+-3 + 2 = -1 (111111111)
+-3 + 3 = 0 (000000000)
+-3 + 4 = 1 (000000001)
+-3 + 5 = 2 (000000010)
+-3 + 6 = 3 (000000011)
+-3 + 7 = 4 (000000100)
+-3 + 8 = 5 (000000101)
+-3 + 9 = 6 (000000110)
+-3 + 10 = 7 (000000111)
+-3 + 11 = 8 (000001000)
+-3 + 12 = 9 (000001001)
+-3 + 13 = 10 (000001010)
+-3 + 14 = 11 (000001011)
+-3 + 15 = 12 (000001100)
+-3 + 16 = 13 (000001101)
+-3 + 17 = 14 (000001110)
+-3 + 18 = 15 (000001111)
+-3 + 19 = 16 (000010000)
+-3 + 20 = 17 (000010001)
+-3 + 21 = 18 (000010010)
+-3 + 22 = 19 (000010011)
+-3 + 23 = 20 (000010100)
+-3 + 24 = 21 (000010101)
+-3 + 25 = 22 (000010110)
+-3 + 26 = 23 (000010111)
+-3 + 27 = 24 (000011000)
+-3 + 28 = 25 (000011001)
+-3 + 29 = 26 (000011010)
+-3 + 30 = 27 (000011011)
+-3 + 31 = 28 (000011100)
+-3 + -32 = -35 (111011101)
+-3 + -31 = -34 (111011110)
+-3 + -30 = -33 (111011111)
+-3 + -29 = -32 (111100000)
+-3 + -28 = -31 (111100001)
+-3 + -27 = -30 (111100010)
+-3 + -26 = -29 (111100011)
+-3 + -25 = -28 (111100100)
+-3 + -24 = -27 (111100101)
+-3 + -23 = -26 (111100110)
+-3 + -22 = -25 (111100111)
+-3 + -21 = -24 (111101000)
+-3 + -20 = -23 (111101001)
+-3 + -19 = -22 (111101010)
+-3 + -18 = -21 (111101011)
+-3 + -17 = -20 (111101100)
+-3 + -16 = -19 (111101101)
+-3 + -15 = -18 (111101110)
+-3 + -14 = -17 (111101111)
+-3 + -13 = -16 (111110000)
+-3 + -12 = -15 (111110001)
+-3 + -11 = -14 (111110010)
+-3 + -10 = -13 (111110011)
+-3 + -9 = -12 (111110100)
+-3 + -8 = -11 (111110101)
+-3 + -7 = -10 (111110110)
+-3 + -6 = -9 (111110111)
+-3 + -5 = -8 (111111000)
+-3 + -4 = -7 (111111001)
+-3 + -3 = -6 (111111010)
+-3 + -2 = -5 (111111011)
+-3 + -1 = -4 (111111100)
+-2 + 0 = -2 (111111110)
+-2 + 1 = -1 (111111111)
+-2 + 2 = 0 (000000000)
+-2 + 3 = 1 (000000001)
+-2 + 4 = 2 (000000010)
+-2 + 5 = 3 (000000011)
+-2 + 6 = 4 (000000100)
+-2 + 7 = 5 (000000101)
+-2 + 8 = 6 (000000110)
+-2 + 9 = 7 (000000111)
+-2 + 10 = 8 (000001000)
+-2 + 11 = 9 (000001001)
+-2 + 12 = 10 (000001010)
+-2 + 13 = 11 (000001011)
+-2 + 14 = 12 (000001100)
+-2 + 15 = 13 (000001101)
+-2 + 16 = 14 (000001110)
+-2 + 17 = 15 (000001111)
+-2 + 18 = 16 (000010000)
+-2 + 19 = 17 (000010001)
+-2 + 20 = 18 (000010010)
+-2 + 21 = 19 (000010011)
+-2 + 22 = 20 (000010100)
+-2 + 23 = 21 (000010101)
+-2 + 24 = 22 (000010110)
+-2 + 25 = 23 (000010111)
+-2 + 26 = 24 (000011000)
+-2 + 27 = 25 (000011001)
+-2 + 28 = 26 (000011010)
+-2 + 29 = 27 (000011011)
+-2 + 30 = 28 (000011100)
+-2 + 31 = 29 (000011101)
+-2 + -32 = -34 (111011110)
+-2 + -31 = -33 (111011111)
+-2 + -30 = -32 (111100000)
+-2 + -29 = -31 (111100001)
+-2 + -28 = -30 (111100010)
+-2 + -27 = -29 (111100011)
+-2 + -26 = -28 (111100100)
+-2 + -25 = -27 (111100101)
+-2 + -24 = -26 (111100110)
+-2 + -23 = -25 (111100111)
+-2 + -22 = -24 (111101000)
+-2 + -21 = -23 (111101001)
+-2 + -20 = -22 (111101010)
+-2 + -19 = -21 (111101011)
+-2 + -18 = -20 (111101100)
+-2 + -17 = -19 (111101101)
+-2 + -16 = -18 (111101110)
+-2 + -15 = -17 (111101111)
+-2 + -14 = -16 (111110000)
+-2 + -13 = -15 (111110001)
+-2 + -12 = -14 (111110010)
+-2 + -11 = -13 (111110011)
+-2 + -10 = -12 (111110100)
+-2 + -9 = -11 (111110101)
+-2 + -8 = -10 (111110110)
+-2 + -7 = -9 (111110111)
+-2 + -6 = -8 (111111000)
+-2 + -5 = -7 (111111001)
+-2 + -4 = -6 (111111010)
+-2 + -3 = -5 (111111011)
+-2 + -2 = -4 (111111100)
+-2 + -1 = -3 (111111101)
+-1 + 0 = -1 (111111111)
+-1 + 1 = 0 (000000000)
+-1 + 2 = 1 (000000001)
+-1 + 3 = 2 (000000010)
+-1 + 4 = 3 (000000011)
+-1 + 5 = 4 (000000100)
+-1 + 6 = 5 (000000101)
+-1 + 7 = 6 (000000110)
+-1 + 8 = 7 (000000111)
+-1 + 9 = 8 (000001000)
+-1 + 10 = 9 (000001001)
+-1 + 11 = 10 (000001010)
+-1 + 12 = 11 (000001011)
+-1 + 13 = 12 (000001100)
+-1 + 14 = 13 (000001101)
+-1 + 15 = 14 (000001110)
+-1 + 16 = 15 (000001111)
+-1 + 17 = 16 (000010000)
+-1 + 18 = 17 (000010001)
+-1 + 19 = 18 (000010010)
+-1 + 20 = 19 (000010011)
+-1 + 21 = 20 (000010100)
+-1 + 22 = 21 (000010101)
+-1 + 23 = 22 (000010110)
+-1 + 24 = 23 (000010111)
+-1 + 25 = 24 (000011000)
+-1 + 26 = 25 (000011001)
+-1 + 27 = 26 (000011010)
+-1 + 28 = 27 (000011011)
+-1 + 29 = 28 (000011100)
+-1 + 30 = 29 (000011101)
+-1 + 31 = 30 (000011110)
+-1 + -32 = -33 (111011111)
+-1 + -31 = -32 (111100000)
+-1 + -30 = -31 (111100001)
+-1 + -29 = -30 (111100010)
+-1 + -28 = -29 (111100011)
+-1 + -27 = -28 (111100100)
+-1 + -26 = -27 (111100101)
+-1 + -25 = -26 (111100110)
+-1 + -24 = -25 (111100111)
+-1 + -23 = -24 (111101000)
+-1 + -22 = -23 (111101001)
+-1 + -21 = -22 (111101010)
+-1 + -20 = -21 (111101011)
+-1 + -19 = -20 (111101100)
+-1 + -18 = -19 (111101101)
+-1 + -17 = -18 (111101110)
+-1 + -16 = -17 (111101111)
+-1 + -15 = -16 (111110000)
+-1 + -14 = -15 (111110001)
+-1 + -13 = -14 (111110010)
+-1 + -12 = -13 (111110011)
+-1 + -11 = -12 (111110100)
+-1 + -10 = -11 (111110101)
+-1 + -9 = -10 (111110110)
+-1 + -8 = -9 (111110111)
+-1 + -7 = -8 (111111000)
+-1 + -6 = -7 (111111001)
+-1 + -5 = -6 (111111010)
+-1 + -4 = -5 (111111011)
+-1 + -3 = -4 (111111100)
+-1 + -2 = -3 (111111101)
+-1 + -1 = -2 (111111110)
+
+Info: /OSCI/SystemC: Simulation stopped by user.
diff --git a/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/main.cpp b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/main.cpp
new file mode 100644
index 000000000..dda8095a1
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/main.cpp
@@ -0,0 +1,77 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ main.cpp --
+
+ Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+ /****************************************/
+ /* Main Filename: main.cc */
+ /****************************************/
+ /* */
+ /* 9-bit bool = 4-bit bool + 6-bit bool */
+ /* */
+ /* Max addition is 63 + 63 */
+ /* */
+ /****************************************/
+
+#include "datawidth.h"
+#include "stimgen.h"
+
+int sc_main(int ac, char *av[])
+{
+
+// Parameter Settings
+ int result_size = 9;
+ int in1_size = 4;
+ int in2_size = 6;
+
+// Signal Instantiation
+ signal_bool_vector4 in1 ("in1");
+ signal_bool_vector6 in2 ("in2");
+ signal_bool_vector9 result ("result");
+ sc_signal<bool> ready ("ready");
+
+// Clock Instantiation
+ sc_clock clk( "clock", 10, SC_NS, 0.5, 0, SC_NS);
+
+// Process Instantiation
+ datawidth D1 ("D1", clk, in1, in2, ready, result,
+ in1_size, in2_size, result_size);
+
+ stimgen T1 ("T1", clk, result, in1, in2, ready);
+
+// Simulation Run Control
+ sc_start();
+ return 0;
+}
diff --git a/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/promote_extension.f b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/promote_extension.f
new file mode 100644
index 000000000..3c46f3738
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/promote_extension.f
@@ -0,0 +1,3 @@
+promote_extension/datawidth.cpp
+promote_extension/stimgen.cpp
+promote_extension/main.cpp
diff --git a/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/stimgen.cpp b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/stimgen.cpp
new file mode 100644
index 000000000..9a98bd4a9
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/stimgen.cpp
@@ -0,0 +1,69 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ stimgen.cpp --
+
+ Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+ /*****************************************/
+ /* Implementation Filename: stimgen.cc */
+ /*****************************************/
+
+#include "stimgen.h"
+
+void
+stimgen::entry()
+{
+ int i;
+ int j;
+
+ ready.write(0);
+
+ for (i = 0; i < 64; i++) { // integer in1 (6 bits of data)
+ for (j = 0; j < 64; j++) { // integer in2 (6 bits of data)
+ in1.write(i);
+ in2.write(j);
+ ready.write(1);
+ wait();
+
+ ready.write(0);
+ wait();
+
+ cout << in1.read().to_int() << " + " << in2.read().to_int()
+ << " = " << result.read().to_int()
+ << " (" << result << ")" << endl;
+ }
+ }
+
+ sc_stop();
+}
diff --git a/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/stimgen.h b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/stimgen.h
new file mode 100644
index 000000000..1c35e4175
--- /dev/null
+++ b/src/systemc/tests/systemc/misc/unit/data/datawidth_bool_to_signed/promote_extension/stimgen.h
@@ -0,0 +1,77 @@
+/*****************************************************************************
+
+ Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
+ more contributor license agreements. See the NOTICE file distributed
+ with this work for additional information regarding copyright ownership.
+ Accellera licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with the
+ License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied. See the License for the specific language governing
+ permissions and limitations under the License.
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ stimgen.h --
+
+ Original Author: Martin Janssen, Synopsys, Inc., 2002-02-15
+
+ *****************************************************************************/
+
+/*****************************************************************************
+
+ MODIFICATION LOG - modifiers, enter your name, affiliation, date and
+ changes you are making here.
+
+ Name, Affiliation, Date:
+ Description of Modification:
+
+ *****************************************************************************/
+
+ /************************************/
+ /* Interface Filename: stimgen.h */
+ /************************************/
+
+#include "common.h"
+
+SC_MODULE( stimgen )
+{
+ SC_HAS_PROCESS( stimgen );
+
+ sc_in_clk clk;
+
+ // Inputs
+ const signal_bool_vector9& result;
+ // Outputs
+ signal_bool_vector4& in1;
+ signal_bool_vector6& in2;
+ sc_signal<bool>& ready;
+
+ // Constructor
+ stimgen (sc_module_name NAME,
+ sc_clock& TICK,
+ const signal_bool_vector9& RESULT,
+ signal_bool_vector4& IN1,
+ signal_bool_vector6& IN2,
+ sc_signal<bool>& READY )
+
+ :
+ result (RESULT),
+ in1 (IN1),
+ in2 (IN2),
+ ready (READY)
+
+ {
+ clk (TICK);
+ SC_CTHREAD( entry, clk.pos() );
+ }
+
+ void entry();
+};