04-18-2022, 04:10 AM
Unsigned NOT
The program UNOT applies a NOT to a binary integer (flips zeros to ones and ones to zeros) using unsigned binary integers. The number of bits (size) is prompted.
HP 42S/DM42 Program UNOT
Examples:
Unsigned NOT of 10100, size 5: 1011 (01011)
Unsigned NOT of 10100, size 8: 11101011
Shift Left
Makes a binary integer shift left: a zero is added to the right side of the integer and "drops" off the left most digit. The number of bits (size) is prompted. The binary number is assumed to be non-negative.
HP 42S/DM42 Program SL16
Examples:
Shift Left: 10100, size 5: 1000 (01000)
Shift Left: 10100, size 8: 101000 (00101000)
Shift Right (Logical)
Makes a binary integer shift right: a zero is added to the left side of the integer and "drops" off the left most digit. The binary number is assumed to be non-negative. A logical shift right divides an integer by 2 and taking the integer result.
HP 42S/DM42 Program SR16
Examples:
Shift Right: 10100: 1010
Shift Right: 1010: 101
The next two programs deals with RGB and HEX codes for computer colors.
HP 42S/DM42 Program CLR→: RBG to Hexadecimal Code
Example:
Red: 221, Green: 80, Blue 109
Result: HEX Code: DD506D
HP 42S/DM42 Program →CLR: Hexadecimal to RGB Code
Example:
HEX Code: 103E22
Result: Red: 16, Green: 62, Blue: 34
The program UNOT applies a NOT to a binary integer (flips zeros to ones and ones to zeros) using unsigned binary integers. The number of bits (size) is prompted.
HP 42S/DM42 Program UNOT
Code:
00 {40-Byte Prgm}
01 LBL "UNOT"
02 BINM
03 "BIN?"
04 PROMPT
05 STO 01
06 EXITALL
07 "SIZE?"
08 PROMPT
09 STO 02
10 2
11 X<>Y
12 Y↑X
13 RCL- 01
14 STO 02
15 1
16 -
17 BINM
18 END
Examples:
Unsigned NOT of 10100, size 5: 1011 (01011)
Unsigned NOT of 10100, size 8: 11101011
Shift Left
Makes a binary integer shift left: a zero is added to the right side of the integer and "drops" off the left most digit. The number of bits (size) is prompted. The binary number is assumed to be non-negative.
HP 42S/DM42 Program SL16
Code:
00 {35-Byte Prgm}
01 LBL "SL16"
02 BINM
03 "BIN?"
04 PROMPT
05 EXITALL
06 2
07 ×
08 "SIZE?"
09 PROMPT
10 2
11 X<>Y
12 Y↑X
13 MOD
14 BINM
15 END
Examples:
Shift Left: 10100, size 5: 1000 (01000)
Shift Left: 10100, size 8: 101000 (00101000)
Shift Right (Logical)
Makes a binary integer shift right: a zero is added to the left side of the integer and "drops" off the left most digit. The binary number is assumed to be non-negative. A logical shift right divides an integer by 2 and taking the integer result.
HP 42S/DM42 Program SR16
Code:
00 {24-Byte Prgm}
01 LBL "SR16"
02 BINM
03 "BIN?"
04 PROMPT
05 EXITALL
06 2
07 ÷
08 IP
09 BINM
10 END
Examples:
Shift Right: 10100: 1010
Shift Right: 1010: 101
The next two programs deals with RGB and HEX codes for computer colors.
HP 42S/DM42 Program CLR→: RBG to Hexadecimal Code
Code:
00 {51-Byte Prgm}
01 LBL "CLR→"
02 DECM
03 "RED?"
04 PROMPT
05 65536
06 BASE×
07 "GREEN?"
08 PROMPT
09 256
10 BASE×
11 BASE+
12 "BLUE?"
13 PROMPT
14 BASE+
15 HEXM
16 END
Example:
Red: 221, Green: 80, Blue 109
Result: HEX Code: DD506D
HP 42S/DM42 Program →CLR: Hexadecimal to RGB Code
Code:
00 {63-Byte Prgm}
01 LBL "→CLR"
02 HEXM
03 "HEX CODE?"
04 PROMPT
05 STO 00
06 DECM
07 65536
08 BASE÷
09 STOP // Red
10 65536
11 BASE×
12 RCL 00
13 X<>Y
14 BASE-
15 STO 00
16 256
17 BASE÷
18 STOP // Green
19 256
20 BASE×
21 RCL 00
22 X<>Y
23 BASE-
24 END
Example:
HEX Code: 103E22
Result: Red: 16, Green: 62, Blue: 34