D语言-运算符
Part 0:概念
表达式:表达式是由非赋值运算符或特殊运算符和值组成的,每个表达式都可以计算出一个值
Part 1:非赋值运算符
§1.1 基本的运算符
基本的运算符有+,-,*,/,%
我相信你除了%
应该能看得懂
%
运算是求余数的运算,具体请看:这篇文章的Part 0部分
怎么用呢?举例介绍:
int a=1,b=2;
a+b;//3
a-b;//-2
a*b;//2
a/b;//1/2
b%a;//0
§1.2 关系运算符
关系运算符描述几个量之间的关系,他们是:==,!=,>,<,>=,<=
解释一下:==
即=
,!=
即≠
,>=
即≥
,<=
即≤
§1.3 逻辑运算符
逻辑运算符主要用于判断
当中,他们包括:&&,||,!
接下来请记住概念:
只要a,b有一个为假,a&&b即为假
只要a,b有一个为真,a||b即为真
如果a为真,则!a为假;如果a为假,!a则为真
请注意!真假在bool类型中只能为1和0,但是对于其他变量,只要不为0即为真
§1.4 位运算符
这些运算符是最难懂的运算符,因为他们针对的是二进制的。他们是:&,|,^,<<,>>,~
若a,b的二进制的同一位上为0,则a&b中,这一位为0
若a,b的二进制的同一位上为1,则a|b中,这一位为1
^和&为互逆的运算
~a表示把a的每一位取反(0改为1,1改为0)
上面的三个运算符会针对一个数的二进制的每一位单独操作,假设a的二进制有4位,则若a参与&运算,&要判断4个位上的数,最后把四次的结果组合为一个新的数字,举个例子:
假设a=1100,b=0011(二进制),求a&b
第1次:a的第一位1和b的第一位0运算:1 & 0 = 0
第2次:a的第一位0和b的第一位1运算:0 & 1 = 0
第3次:a的第一位1和b的第一位0运算:1 & 0 = 0
第4次:a的第一位0和b的第一位1运算:0 & 1 = 0
组合结果,a&b=0000(二进制)
接下来的运算,是针对一个数的二进制进行操作:
a>>b表示,把a的每一位向右移动b次,溢出的数字舍去,空缺的位用0补全
a<<b表示,把a的每一位向左移动b次,溢出的数字舍去,空缺的位用0补全
举个例子:假设a=1111(二进制):
Part 2:赋值运算符
由于非赋值运算符并不会改变值,如果你想a加一,你要写a = a+1
有了赋值运算符,就简单的多了!
除了逻辑运算符,上面谈到的非赋值运算符后缀=
即为赋值运算符了:
- => +=
- => -=
- => *=
/ => /=
% => %=
& => &=
| => |=
^ => ^==> >>=
<< => <<=
~ => ~=
Part 3:特殊运算符
特殊运算符并不是用来计算的,他们包括:sizeof(),&,*,?:
sizeof(a)
用来返回变量a所占的字节大小
&,*
为指针运算符,此时他们左边没有数值,&p
来返回一个变量p在计算机内储存的地址,*p
返回指针p指向的地址所储存的值
a?x:y
中,a是一个表达式,如果表达式为真,则a?x:y
的值为x
;否则,a?x:y
的值为y
D语言-运算符的更多相关文章
- C语言运算符和优先级
关于C语言运算符和优先级,经整理众多博客资料汇入自己的实战,如下: a.算术运算 C语言一共有34种运算符,包括常见的加减乘除运算. 1) 加法:+ 还可以表 ...
- 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等
[源码下载] 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等 作者:webabcd 介绍不可或缺 Windows Native ...
- 一道c语言运算符优先级问题
一道c语言运算符优先级问题 #include <iostream> using namespace std; int main() { char test[] = {"This ...
- [转]说说C语言运算符的“优先级”与“结合性”
补充自己的一点理解: 1.关于++i 与 i++的区别. ++i 和 i++如果是单独使用的语句,即二者后面均加上分号,或者其他单独使用的语句,没有任何区别.例如: for(i=0;i<100; ...
- 李洪强-C语言7-C语言运算符
C语言运算符 一.算术运算 C语言一共有34种运算符,包括常见的加减乘除运算. ①. 加法:+ 还可以表示正号 ②. 减法:- 还可以表示负号 ③. 乘法:* 非数学意义上的X ④. 除法:/ 注意 ...
- C语言的本质(7)——C语言运算符大全
C语言的本质(7)--C语言运算符大全 C语言的结合方向 C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左).例如算术运算符的结合性是自左至右,即先左后右.如有表达式 x- ...
- C语言运算符优先级总结
一 写在开头1.1 本文内容本文内容为C语言中运算符优先级的总结.转载于:https://blog.csdn.net/huangblog/article/details/8271791,感谢原作者的付 ...
- C语言运算符优先级和ASCII表
1. C语言运算符优先级及结合性 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成 ...
- 说说C语言运算符的“优先级”与“结合性”
论坛和博客上常常看到关于C语言中运算符的迷惑,甚至是错误的解读.这样的迷惑或解读大都发生在表达式中存在着较为复杂的副作用时.但从本质上看,仍然是概念理解上的偏差.本文试图通过对三个典型表达式的分析,集 ...
- C语言运算符优先级及结合性
今天去翻了下C语言运算符的优先级和结合性,发现当初学习的时候就没认真记住,惭愧.发现一篇讲得不错的文章,编辑了下转来供以后翻阅. C语言运算符优先级表(由上至下,优先级依次递减) 运算符 结合性 () ...
随机推荐
- C++ 语言程序设计(清华大学)1
1.回文数字判断方法(逆过来数值相等):y=y*10+x%10; x /= 10; return(x==y) 2.int rand(void)函数,所需头文件<cstdlib> ,功能是求 ...
- Phoenix5.0的部署
官网下载编译好的二进制包 http://phoenix.apache.org/download.html2 上传并解压到指定目录, 再修改目录名称 tar -zxvf apache-phoenix-5 ...
- centos7安装google-chrome和chromedriver
1.root用户下进入到etc/yum.repos.d目录下 [root@f7d6b9f2-1291-4d2f-8805-aef94deac9f7 yum.repos.d]# pwd /etc/y ...
- [洛谷Luogu]P1141 01迷宫[联通块 并查集]
题目链接 大致题意 相邻格子不同为连通,计算每个点所在的连通块大小. 想法 我采用了并查集的做法. 开一个辅助数组记录连通块大小,每次合并的时候更新父亲节点的大小即可. 一个点先与它上面的点判定,若判 ...
- 二十一、SAP中通过内表输出数据库中数据
一.我们查看一个SCARR的一个数据库 二.数据库内容如下 三.我们写一个关于内表使用的代码,来显示这个数据库内容 四.输出如下
- Mac电脑上怎么设置环境变量
https://jingyan.baidu.com/article/8065f87f47b29523312498e4.html 环境变量是电脑操作系统中常用的一些变量,作用类似于将一些常用命令所在的文 ...
- MacType
#前言 这几天实在是嫌弃Win10垃圾的字体渲染效果--发虚模糊,索性从网上找了个系统字体渲染软件即MacType给系统字体改头换面. #使用效果 这里贴出两个场景的效果对比(单击图片查看具体效果) ...
- SciKit-Learn 可视化数据:主成分分析(PCA)
## 保留版权所有,转帖注明出处 章节 SciKit-Learn 加载数据集 SciKit-Learn 数据集基本信息 SciKit-Learn 使用matplotlib可视化数据 SciKit-Le ...
- ACM-Satellite Photographs
题目描述:Satellite Photographs Farmer John purchased satellite photos of W x H pixels of his farm (1 < ...
- 在Mac上如何运行jar文件
操作一:编译,打包. 操作二: 运行jar文件,提示:jar中没有主清单属性. 解决办法: 使用解压工具解压HelloWorld.jar文件,往MANIFEST.MF中添加Main-Class. 1. ...