--- # Documentation: https://sourcethemes.com/academic/docs/managing-content/ title: "Bit magic in C (and C++)" subtitle: "" summary: "" authors: [] tags: [] categories: [] date: 2020-06-13T19:01:19+02:00 lastmod: 2020-06-13T19:01:19+02:00 featured: false draft: true # Featured image # To use, add an image named `featured.jpg/png` to your page's folder. # Focal points: Smart, Center, TopLeft, Top, TopRight, Left, Right, BottomLeft, Bottom, BottomRight. image: caption: "" focal_point: "" preview_only: false # Projects (optional). # Associate this post with one or more of your projects. # Simply enter your project's folder or file name without extension. # E.g. `projects = ["internal-project"]` references `content/project/deep-learning/index.md`. # Otherwise, set `projects = []`. projects: [] --- # Set a bit ```c // Set one bit high at position "bit" in input and store to output output = input | (1 << bit); // Shorthand variable |= (1 << bit); // Multiple bits variable |= (0b101 << bit); ``` # Clear a bit ```c // Clear one bit high at position "bit" in input and store to output output = input & ~(1 << bit); // Shorthand variable &= ~(1 << bit); // Multiple bits variable &= ~(0b101 << bit); ``` # Toggle a bit ```c // Clear one bit high at position "bit" in input and store to output output = x ^ (1 << bit); // Shorthand variable ^= (1 << bit); // Multiple bits variable ^= (0b101 << bit); ```