zoukankan      html  css  js  c++  java
  • C语言位运算符

    #include<stdio.h>
    int main()
    {
      /***************************************
       *  9的二进制是:b1001
       *  5的二进制是:b0101
       **************************************/
        printf("二进制0b1001是:%d
    ",0b1001);
        printf("二进制0b0101是:%d
    ",0b0101);
    
        /***************************************
         * 按位与运算符:&,两个数字相同位全部为1时,结果位为1
         *
         *   1001
         *   0101
         * --------
         *   0001
         **************************************/
        printf("9与5(9 & 5)的值为:%d
    ",9 & 5);
        /***************************************
         * 按位或运算符:|,两个数字相同位只要有一个数字为1,结果位为1
         *
         *   1001
         *   0101
         * --------
         *   1101
         **************************************/
        printf("9 或 5 (9 | 5)的值为:%d
    ",9 | 5);
        /***************************************
         * 按位异或运算符:^,两个数字相同位只要不相同,结果位为1
         *
         *   1001
         *   0101
         * --------
         *   1100
         **************************************/
        printf("9 异或 5 (9 ^ 5)的值为:%d
    ",9 ^ 5);
        /***************************************
         * 按位取反运算符:~,数字位0变1,1变0
         * 9的完整二进制:
         * ~0000 0000 0000 0000 0000 0000 0000 0000 1001
         *  1111 1111 1111 1111 1111 1111 1111 1111 0110
         *
         **************************************/
        printf("9按位取反(~9) 的值为:%d
    ", ~9 );
        /***************************************
         * 左移运算符:<<,最高位舍去,低位补0
         * 9的完整二进制:
         * 0000 0000 0000 0000 0000 0000 0000 0000 1001
         * 9 << 1
         * 0000 0000 0000 0000 0000 0000 0000 0001 0010
         *
         **************************************/
        printf("9左移1位 (9 << 1)  的值为:%d
    ", 9 << 1  );
        /***************************************
         * 右移运算符:>>,底为舍去,符号位不变,一般情况下其它位用符号位补全
         * 9的完整二进制:
         * 0000 0000 0000 0000 0000 0000 0000 0000 1001
         * 9 << 1
         * 0000 0000 0000 0000 0000 0000 0000 0000 0100
         *
         **************************************/
        printf("9右移1位(9 >> 1)  的值为:%d
    ", 9 >> 1  );
    
       return 0;
    }
    二进制0b1001是:9
    二进制0b0101是:5
    9与5(9 & 5)的值为:1
    95 (9 | 5)的值为:13
    9 异或 5 (9 ^ 5)的值为:12
    9按位取反(~9) 的值为:-10
    9左移1位 (9 << 1)  的值为:18
    9右移1位(9 >> 1)  的值为:4
  • 相关阅读:
    [LeetCode] Contains Duplicate 包含重复值
    [LeetCode] 281. The Skyline Problem 天际线问题
    Qt resizeEvent 控件居中设置
    [LeetCode] 214. Shortest Palindrome 最短回文串
    Qt Creator Shortcuts 快捷键大全
    Qt SizePolicy 属性
    [LeetCode] 30. Substring with Concatenation of All Words 串联所有单词的子串
    [LeetCode] 213. House Robber II 打家劫舍之二
    [LeetCode] 212. Word Search II 词语搜索之二
    [LeetCode] 18. 4Sum 四数之和
  • 原文地址:https://www.cnblogs.com/heml/p/3527897.html
Copyright © 2011-2022 走看看