summaryrefslogtreecommitdiff
path: root/reference/C/EXAMPLES/and.c
diff options
context:
space:
mode:
Diffstat (limited to 'reference/C/EXAMPLES/and.c')
-rw-r--r--reference/C/EXAMPLES/and.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/reference/C/EXAMPLES/and.c b/reference/C/EXAMPLES/and.c
new file mode 100644
index 0000000..5844f61
--- /dev/null
+++ b/reference/C/EXAMPLES/and.c
@@ -0,0 +1,44 @@
+/****************************************************************************
+ *
+ * Purpose: To show the effect of a bitwise AND (&) by converting
+ * an ASCII graphic extension into its character equivalent.
+ * Author: M.J. Leslie.
+ * Date: 04-Mar-95
+ *
+ ****************************************************************************/
+
+main()
+{
+ /*
+ * Hex E6 looks like this in binary
+ *
+ * 1110 0110
+ *
+ * UNSIGNED is used to stop C using
+ * first 1 as an indicator of the sign
+ */
+ unsigned char value='\xE6';
+
+ /* Hex 7F looks like this in binary
+ *
+ * 0111 1111
+ */
+
+ printf("%2X %2X \n", value, (value & '\x7F'));
+
+ /* A bitwise AND has the effect of
+ * filtering unwanted bits.
+ *
+ * 1110 0110 (E6) AND
+ * 0111 1111 (7F)
+ * ---------
+ * 0110 0110 (66)
+ */
+}
+/****************************************************************************
+ *
+ * Program results are:
+ *
+ * E6 66
+ *
+ ****************************************************************************/