当前位置: 首页 > news >正文

【C语言极简自学笔记】重讲运算符

一、算术操作符

算术操作符描述
+把两个操作数相加
-第一个操作数减去第二个操作数
*把两个操作数相乘
/分子除以分母
%取模运算符,整除后的余数

注意:1.除号的两端都是整数的时候执行的是整数的除法,两端只要有一个浮点数,就执行浮点数                的除法;
           2.%取模两端必须为整数 。

二、移位操作符

1.左移位操作符<<

规则:左边抛弃,右边补0

 由于在计算机中存储的数为二进制的补码,正数的原码、反码、补码均一致,负数的补码等于反码加一

则7的原码、补码、反码为:00000000000000000000000000000111

经过左移一位之后的结果为:000000000000000000000000000001110

即为十进制数14

若操作数为负数

 -7的原码为:10000000000000000000000000000111

反码为:11111111111111111111111111111000

补码为:11111111111111111111111111111001

左移一位后的结果为:11111111111111111111111111110010

原码为:10000000000000000000000000001110,即十进制数-14

2.右移操作符>>

右移操作符分为两种①:算术移位:右边抛弃,左边补原值符号位

                                ②:逻辑移位:右边抛弃,左边补0

一般编译器均为算术移位

-7的补码为:11111111111111111111111111111001 
右移一位后的结果为:11111111111111111111111111111100
原码为:10000000000000000000000000000100,即十进制数-4

7的原码、补码、反码为:00000000000000000000000000000111
右移一位后的结果为: 00000000000000000000000000000011,即十进制数3

 三、位操作符

位操作符主要分为三类:

&:按(二进制)位与

|:按(二进制)位或

^:按(二进制)位异或

注意❗❗❗:操作数均为整数

原理:通过存储在计算机中的二进制数进行按位操作,若操作数为正数,则直接输出其对应的数值;若操作数为负数,则求得其对应的原码所代表的数值后输出。

int main()
{int a = 3;//a的补码  00000000000000000000000000000011int b = -5;//b的原码  10000000000000000000000000000101//b的反码  11111111111111111111111111111010//b的补码  11111111111111111111111111111011int c = a & b;printf("c = %d\n",c);//a和b的补码按位与结果:00000000000000000000000000000011    即十进制数3int d = a | b;printf("d = %d\n", d);//a和b的补码按位或结果:11111111111111111111111111111011//反码为:11111111111111111111111111111010//原码为:10000000000000000000000000000101  即十进制数 -5int e = a ^ b;printf("e = %d\n", e);//a和b的补码按位异或结果:11111111111111111111111111111000//反码为:11111111111111111111111111110111//原码为:10000000000000000000000000001000   即十进制数 -8return 0;
}

四、赋值操作符

运算符描述
=赋值运算符,把右边操作数的值赋给左边操作数
+=加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数
-=减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数
*=乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数
/=除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数
%=求模且赋值运算符,求两个操作数的模赋值给左边操作数
<<=左移且赋值运算符
>>=右移且赋值运算符
&=按位与且赋值运算符
^=按位异或且赋值运算符
|=按位或且赋值运算符

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/253983.html

相关文章:

  • 自动打电话软件设计与实现
  • FPGA基础 -- Verilog行为级建模之alawys语句
  • FPGA基础 -- Verilog 行为级建模之条件语句
  • 爬虫技术:从数据获取到智能分析的进阶之路
  • Mac 安装 finalshell
  • WebFuture:PDF页面去掉下载按钮
  • 【算法 day06】LeetCode 454.四数相加II | 15. 三数之和 | 18. 四数之和
  • 23.查询增强
  • 【入门算法】枚举:有序穷举,分步排查
  • 【音视频】PJSIP库——pjsua命令使用详解
  • 嵌入式自学第四十二天
  • Java八股文——计算机网络「应用层篇」
  • 京东618带火四大消费 即时零售和生活服务迎来爆发
  • 一个.Net开发的功能强大、易于使用的流媒体服务器和管理系统
  • Redis 五种数据结构
  • keil新建工程文件结构和每个文件的作用解析(标准库版本)
  • 零知开源——STM32F4实现ILI9486显示屏UI界面系列教程(一):电子书阅读器功能
  • uniapp实现聊天中的接发消息自动滚动、消息定位和回到底部
  • QTableView为例:Qt模型视图委托(MVD)(Model-View-Delegate)
  • C# CSharpScript 的原理与应用
  • python校园拼团系统
  • Uniapp 中根据不同离开页面方式处理 `onHide` 的方法
  • uniapp的video遮盖了popup
  • Web安全性测试--超详细用例CASE整理总结
  • linux unix socket 通信demo
  • 理解RocketMQ顺序消息的全局有序消息和分区有序消息、延迟消息、事务消息
  • 英一真题阅读单词笔记 13年
  • JS数据类型检测方法总结
  • 大数据学习(140)-数仓概述分析
  • 你的下一把量化“瑞士军刀”?KHQuant适用场景全解析【AI量化第32篇】