返回

C语言学习之旅 【操作符(残缺版)】

发布时间:2022-11-19 11:11:33 303
# c++# 数据

1.1 算术操作符

  1. 除号

要想打印浮点型,需要符号一侧为浮点型,且数据类型为double或者float类型

int main()
{
	//int i = 7 / 3;
	//printf("%d", i); // 2

	double i = 7.0 / 3;
	printf("%lf", i); // 2.3333
	return 0;
}
  1. 取模

//取模操作符 的两端必须都为整数

int main()
{
	int a = 7 % 3;
	printf("%d", a);
	return 0;
}

1.2 移位操作符

  1. 左移/右移操作符

二进制位左移/右移动 n位 右移补位:算术右移补原符号位;逻辑右移补0

int main()
{   
	//左移操作符
	int a = -2;
	int b =  a << 1;
	printf("%d\n", a); //a并没有改变 
	printf("%d\n", b); // -4
	//右移操作符
	int c = a >> 1;
	printf("%d\n", c); // -1
	return 0;
}

原码 ----(符号位不变,其他位按位取反)----> 反码 ----(反码+1)---->补码

1.3 位操作符

& 按位与:同1则1,其余为0 | 按位或 :有1则1 ,无1则0 ^ 按位异或 :相同为0, 相异为1 ==备注:他们的操作数必须都是整数!==

  1. 实例1.交换两个数
int main()
{
	int a = 3;
	int b = 5;
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
	printf("%d, %d", a, b);
	return 0;
} 

总结:

a ^ a = 0 a ^ b ^ b = a

1.4 单目操作符

!逻辑取反 sizeof 其中的表达式不参与运算

#include 
int main()
{
	// 一次代码运行需要经过从  test.c 编译 --> 链接 --> 运行  test.exe
	short s = 5;
	int a = 0;
	printf("%d\n", sizeof(s = a + 2));  // sizeof中的参数是在编译过程运行的
	printf("%d\n", s); // 实际并未改变a+2的值
	return 0;
	//输出结果为 2  5
}

~ 按位取反 --> -1的补码是32位全1

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
C语言-找出单身狗 2022-11-19 10:39:58