首页 > 其他分享 >C中的位运算

C中的位运算

时间:2024-11-10 17:30:11浏览次数:1  
标签:右移 运算 二进制位 左移 取反 运算符

数学基础

C中的位运算

在C语言中,位运算有以下运算符 与(&) 或(|) 异或(^) 取反(~) 左移和右移(<< >>)

  • 与运算(&)
    两位都为1时,结果才为1

    0 & 0 = 0
    1 & 0 = 0
    0 & 1 = 0
    1 & 1 = 1
    
  • 或运算(|)
    两位中只要有一位为1,结果为1

    0 | 0 = 0
    1 | 0 = 1
    0 | 1 = 1
    1 | 1 = 1
    
  • 异或运算(^)
    相应位相同为0,相异为1

    0 ^ 0 = 0
    1 ^ 0 = 1
    0 ^ 1 = 1
    1 ^ 1 = 0
    
  • 取反运算(~)
    对一个参与运算的数据的二进制位进行取反运算

    0 ~ = 1111 1111  \\int(0)的二进制位为 0000 0000
    1 ~ = 1111 1110  \\int(1)的二进制位为 0000 0001
    
  • 左移运算符(<<)
    将一个运算对象的各二进制位全部左移若干位,高位丢弃,低位补0
    例如,设 a = 1010 1110,a = a << 2 将 a 的二进制位左移2位、右补0,即得 a = 1011 1000
    若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2

  • 右移运算符(>>)
    将一个数的各二进制位全部右移若干位,高位补0或补符号位,右边丢弃
    例如,a = a >> 2 将 a 的二进制位右移2位,左补0 或补符号位,具体取决于数的正负
    操作数每右移一位,相当于该数除以2

标签:右移,运算,二进制位,左移,取反,运算符
From: https://www.cnblogs.com/tnt-ts/p/18538238

相关文章

  • JavaCC 实战三:整数加法运算
    前两篇文章我们主要介绍了JavaCC安装以及入门介绍。在这篇文章中介绍如何使用Javacc实现判断输入是否是一个合法的加法运算。在如下这个例子中,我们需要实现对如下数字进行加和:99+42+0+15并且在输入中可以允许在数字之间的任意位置出现空格或者换行符。除此之......
  • 1.Kotlin-基本数据类型及运算
    一.Kotlin基本数据类型基本数据类型包括:Byte,Short,Int,Long,Float,Double数据类型推断:Kotlin中的数据类型全部以val进行声明,编译器会自动推断数据类型当然也可以在变量名后加:数据类型的形式,显示指明数据类型valbyteNumber:Byte=127;//Byte1.整数类型类......
  • c++-有关输出、信息输入、趣味输入应用、运算符、变量、浮点数数据类型的基础知识
    C++是一种功能强大且广泛使用的编程语言,它可以用于开发各种类型的应用程序。在这篇文章中,我们将介绍C++程序的输出、信息输入、趣味输入应用、运算符、变量和浮点数数据类型的基础知识。目录输出信息输入趣味输入应用运算符变量浮点数数据类型题目题目1:解答1:题目2:......
  • day03 运算符-分支语句
    今日内容运算符分支语句教学目标能够知道哪些运算中发生了隐式转换能够知道如何对数据进行强转能够使用自增自减运算符并知道在前在后的区别能够使用关系运算符完成数据的比较能够掌握不同逻辑运算符的运算规则能够掌握三元运算符的格式和执行流程能够运用小扩号......
  • Shell概述、编写及执行脚本、Shell变量+数值运算
    一、shell基本介绍 1.1 什么是shell◆ 在Linux内核与用户之间的解释器程序◆通常指/bin/bash◆负责向内核翻译及传达用户/程序指令◆相当于操作系统的“外壳”1.2 shell使用方式◆交互式 ——命令行-----人工干预、智能化程度高-----逐条解释执行、效率......
  • clickhouse数据库,时间范围一周,周期为每一小时,聚合数据中的最新,最大值,最小值,平均值,求和
    工作中通过ai改来改去最后实现的,非常好用databaseVal举例:1HOURinterval:1WEEK最新,这里用到了ROW_NUMBER,就是编号,OVER就是分组,分组是通过一小时聚合,聚合后会有编号每一个组的,从1开始到该组结束,取每组的第一条就是最新的SELECTreport_timeAStimeInterval,cpu_usageAScpu......
  • Matlab矩阵运算的硬件资源分析
    在用Matlab创建矩阵并计算矩阵乘法运算时,要注意计算机的可用内存大小(空间资源)和CPU性能(影响所用计算时间)。例如我们做以下测试:n为qubit的数目,那么一个矩阵Matrix_A=rand(2^n,2^n)可以表示一个n-qubit的密度矩阵(全实数量子态)或者一个幺正操作(实数矩阵例子)。注意:这样的矩阵Matrix_......
  • LeetCode3264[K次乘运算后的最终数组I]
    题目链接LeetCode3264[K次乘运算后的最终数组I]详情实例实例1实例2提示题解思路先找到最小值然后对最小值进行操作最后输出容器代码classSolution{public:intfindVecMinNumIndex(vector<int>nums)//找出最小值的下标{inti=0,iMin......
  • 【JAVA】Java基础—基础语法:运算符(算数、关系、逻辑运算符)
    在Java编程中,运算符是进行各种操作的基本工具。运算符允许我们对数据进行计算、比较、逻辑运算等操作,是实现程序逻辑的关键部分。理解运算符的使用和功能对于编写高效且可读的代码至关重要。Java中的运算符主要分为以下几类:算术运算符:用于进行数学计算。关系运算符:用于比......
  • 初学Java基础---Day21---正则表达式,日期类,Math类,Random类,System类,Runtime类,大数值运
    一,正则表达式理解:        符合某个语句规范的字符串案例://案例:把一个字符串中带电话号码替换成130****1111的形式Stringstr="小红13012341111小绿15112342222小黑13912343333";//分析:电话号码可以分为三组如:(130)(1234)(1111)其中第一组中的1是固定/......