Advanced Boolean Functions
This is a collection of advanced Boolean functions and how you can do this on a scientific calculator that has base conversions and Boolean functions (and, or, not). One thing to keep in mind is that Boolean functions on a scientific calculator assume that you are working with a set bit size.
Order of Operations: Parenthesis, NOT, AND, OR
For the examples below, I am going to work with only 8 bit size binary integers, and display the last 8 bits (rightmost 8 digits in Binary numbers). For all examples, let (in base 2):
A = 1100 1010
B = 1110 0011
Like the Boolean functions and, or, and not, these functions work on each bit (0s and 1s) of the binary form of the number.
Integer Types on the HP Prime
On the HP Prime, the integer type is used for Boolean function calculations. Symbolize integer types by preceding it by a hashtag # and designated a letter at the end of the integer: b for binary, o for octal, d for decimal, and h for hexadecimal.
Example: #11010b represents the binary number 11010.
You can specify the bit size, from 1 to 64, by attaching a colon and bit size in between the integer and it's indicator.
Example: #11010:8b represents the 11010 in an 8-bit format. You can specify the default size in the Home Settings.
NAND (Not And)
The function NAND is also known as the Shaffer function.
nand(A, B) = not(A and B)
nand(1100 1010, 1110 0011) = not(1100 1010 and 1110 0011) = 0011 1101
Truth Table - NAND
0 nand 0 = 1
0 nand 1 = 1
1 nand 0 = 1
1 nand 1 = 0
HP Prime Program: NAND
EXPORT NAND(a,b)
BEGIN
// not and Boolean Function
RETURN NOT (a AND b);
END;
Syntax: NAND(a,b)
NOR (Not Or)
The function NOR is also known as the Peirce function.
nor(A, B) = not(A or B)
nor(1100 1010, 1110 0011) = not(1100 1010 or 1110 0011) = 0001 0100
Truth Table - NOR
0 nor 0 = 1
0 nor 1 = 0
1 nor 0 = 0
1 nor 1 = 0
HP Prime Program: NOR
EXPORT NOR(a,b)
BEGIN
// not or Boolean Function
RETURN NOT (a OR b);
END;
Syntax: NOR(a,b)
XOR (Exclusive Or)
Note: some calculators will have the XOR function
xor(A, B) = (A or B) and (not A or not B)
xor(1100 1010, 1110 0011)
= (1100 1010 or 1110 0011) and (not 1100 1010 or not 1110 0011)
= 0010 1001
Truth Table - XOR
0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0
Equivalence (←→), XNOR
A ←→ B = (not A and not B) or (A and B)
1100 1010 ←→ 1110 0011
= 1100 1010 xnor 1110 0011
= (not 1100 1010 and not 1110 0011) or (1100 1010 and 1110 0011)
= 1101 0110
Truth Table - ←→, xnor
0 xnor 0 = 1
0 xnor 1 = 0
1 xnor 0 = 0
1 xnor 1 = 1
HP Prime Program XNOR
EXPORT XNOR(a,b)
BEGIN
// equivalence, XNOR
RETURN (NOT a AND NOT b) or (a AND b);
END;
Syntax: XNOR(a, b)
Implication (→)
A → B = (not A) or B
1100 1010 → 1110 0011
= (not 1100 1010) or 1110 0011
= 1111 0111
Truth Table - Implication, →
0 → 0 = 1
0 → 1 = 1
1 → 0 = 0
1 → 1 = 1
HP Prime Program: IMPL
EXPORT IMPL(a,b)
BEGIN
// implication
RETURN (NOT a) or b;
END;
Source:
John W. Harris and Horst Stocker. Handbook of Mathematics and Computation Science Springer: New York, NY. 2006. ISBN 978-0-387-94746-4
Eddie
All original content copyright, © 2011-2020. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.
This is a collection of advanced Boolean functions and how you can do this on a scientific calculator that has base conversions and Boolean functions (and, or, not). One thing to keep in mind is that Boolean functions on a scientific calculator assume that you are working with a set bit size.
Order of Operations: Parenthesis, NOT, AND, OR
For the examples below, I am going to work with only 8 bit size binary integers, and display the last 8 bits (rightmost 8 digits in Binary numbers). For all examples, let (in base 2):
A = 1100 1010
B = 1110 0011
Like the Boolean functions and, or, and not, these functions work on each bit (0s and 1s) of the binary form of the number.
Integer Types on the HP Prime
On the HP Prime, the integer type is used for Boolean function calculations. Symbolize integer types by preceding it by a hashtag # and designated a letter at the end of the integer: b for binary, o for octal, d for decimal, and h for hexadecimal.
Example: #11010b represents the binary number 11010.
You can specify the bit size, from 1 to 64, by attaching a colon and bit size in between the integer and it's indicator.
Example: #11010:8b represents the 11010 in an 8-bit format. You can specify the default size in the Home Settings.
NAND (Not And)
The function NAND is also known as the Shaffer function.
nand(A, B) = not(A and B)
nand(1100 1010, 1110 0011) = not(1100 1010 and 1110 0011) = 0011 1101
Truth Table - NAND
0 nand 0 = 1
0 nand 1 = 1
1 nand 0 = 1
1 nand 1 = 0
HP Prime Program: NAND
EXPORT NAND(a,b)
BEGIN
// not and Boolean Function
RETURN NOT (a AND b);
END;
Syntax: NAND(a,b)
The function NOR is also known as the Peirce function.
nor(A, B) = not(A or B)
nor(1100 1010, 1110 0011) = not(1100 1010 or 1110 0011) = 0001 0100
Truth Table - NOR
0 nor 0 = 1
0 nor 1 = 0
1 nor 0 = 0
1 nor 1 = 0
HP Prime Program: NOR
EXPORT NOR(a,b)
BEGIN
// not or Boolean Function
RETURN NOT (a OR b);
END;
Syntax: NOR(a,b)
Note: some calculators will have the XOR function
xor(A, B) = (A or B) and (not A or not B)
xor(1100 1010, 1110 0011)
= (1100 1010 or 1110 0011) and (not 1100 1010 or not 1110 0011)
= 0010 1001
Truth Table - XOR
0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0
Equivalence (←→), XNOR
A ←→ B = (not A and not B) or (A and B)
1100 1010 ←→ 1110 0011
= 1100 1010 xnor 1110 0011
= (not 1100 1010 and not 1110 0011) or (1100 1010 and 1110 0011)
= 1101 0110
Truth Table - ←→, xnor
0 xnor 0 = 1
0 xnor 1 = 0
1 xnor 0 = 0
1 xnor 1 = 1
HP Prime Program XNOR
EXPORT XNOR(a,b)
BEGIN
// equivalence, XNOR
RETURN (NOT a AND NOT b) or (a AND b);
END;
Syntax: XNOR(a, b)
A → B = (not A) or B
1100 1010 → 1110 0011
= (not 1100 1010) or 1110 0011
= 1111 0111
Truth Table - Implication, →
0 → 0 = 1
0 → 1 = 1
1 → 0 = 0
1 → 1 = 1
HP Prime Program: IMPL
EXPORT IMPL(a,b)
BEGIN
// implication
RETURN (NOT a) or b;
END;
John W. Harris and Horst Stocker. Handbook of Mathematics and Computation Science Springer: New York, NY. 2006. ISBN 978-0-387-94746-4
Eddie
All original content copyright, © 2011-2020. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.