首页 > 其他分享 >操作符简单介绍;

操作符简单介绍;

时间:2024-03-14 21:59:10浏览次数:20  
标签:int 简单 介绍 ++ 操作符 printf 按位 main

除法操作符;

1.‘/’除法运算符两边都是整数时,操作结果也是整数;当两边至少有一个小数时,算出来的是小数;
2.代码:
int main()
{
	double z = 7 / 2;//整数除法算出的是3,打印的时候跟类型无关;
	double x = 7.0 / 2;//小数除法必须至少有一个是小数;
	printf("%lf\n", z);//除法中被除数不能为零;
	printf("%lf\n", x);
	return 0;
}
3.运行结果:

取模操作符;

1.取模操作符只能在整数间使用;
2.代码:
int main()
{
	int x = 7 % 2;
	/*double y = 7.0 % 2;*///取模只能在整数间应用;
	printf("%d", x);
	return 0;
}
3.运行结果:

移位操作符;

1.正整数原码反码补码都一样;负数需要计算,反码是符号位不变,其他位按位取反,补码是反码加1;整数在内存中存储的是补码;计算的时候也是使用补码计算;移位移动的是补码的二进制;
2.算数右移:右边丢去,左边补符号位;逻辑右移:右边丢弃,左边补零;一般采用算数右移;左移操作符,左边丢弃,右边补零。
3.代码:
右移:
#include<stdio.h>
int main()
{
	int a = 15;
	int b = -15;
	a = a >> 1;//00000000000000000000000000000111
	//a自身没变;
	b = b >> 1;//11111111111111111111111111110001>>11111111111111111111111111111000>>10000000000000000000000000000111
	printf("%d ", a);//当前编译器是用的算数右移;
	printf("%d ", b);
	return 0;
}
左移:
int main()
{//{
//	int a = 6;//00000x00110  6
//	int b = a << 1;//00000x01100   12

    int a = -6;//10000X0000110  11111X1111001  11111X1111010;
    int b = a << 1;//1111X11110100  -1 1111X11110011  取反1000x00001100 =-12
	printf("%d ", a);//a=a<<1  ====a<<=1;
	printf("%d ", b);
	return 0;
}
4.运行结果:
右移:

左移:

按位操作符;

1.按位与:&  两个为1才是1 按位或:| 有一个1就是1 按位异或:^ 对应的二进制位相同为0,相异为1;
2.计算的时候用补码算,算出来的都是补码,负数要注意化为源码;
3.代码:
#include<stdio.h>
int main()
{
	int a = 3;
	//00000000000000000000000000000011
	int b = -5;
	//10000000000000000000000000000101
	//11111111111111111111111111111010
	//11111111111111111111111111111011
	int c = a & b;
	//00000000000000000000000000000011 3
	int d = a | b;
	//11111111111111111111111111111011
	//11111111111111111111111111111010
	//10000000000000000000000000000101 -5
	int e = a ^ b;
	//11111111111111111111111111111000
	//11111111111111111111111111110111
	//10000000000000000000000000001000 -8
	printf("%d %d %d", c, d, e);
	return 0;
}
4.运行结果;

异或实现数字交换;

1.异或支持交换率的;自己与自己异或是0,与零异或是自己;
2.a^b^a=b;
3.代码:
int main()
{
	int a = 3;
	int b = -5;
	int e = a ^ 0;// 3
	int d = b ^ 0;// -5
	int c = a ^ a;// 0
	a = a ^ b;
	b = a ^ b;//b=a
	a = a ^ b;//a=b
	printf("%d %d %d %d %d\n", e, d, c, a, b);
	return 0;
}
4.运行结果;

计算一个数在内存中‘1’的个数;

1.利用移位操作符和按位与操作符来算;
2.将数和1按位与,如果是1,则这个位是1,如果是0,则这个位是0;运算完后,按位向右移,再与1与;利用for循环,一直移动31次,全部检验完毕;
3.代码:
int main()
{
	int a = 3;//00000000000000000000000000000011
	int b = 1;
	int i = 0;
	int cunt=0;
	for (i = 0;i < 32;i++)//总共移动31位就完成全部
	{
		int c = a >> i;
		int d = c & b;
		if (1 == d)
		{
			cunt++;
		}
		else
		{

		}
	}
	printf("共%d个1\n", cunt);
	return 0;
}
4.运行结果;

逻辑操作符;

1.&&操作符左边是0的话就不再往下计算;||操作符左边是1的话就不再往下计算;
2.代码·:
int main()
{
	int i = 0;
	int j = 0;
	int a = 1;
	int b = 2;
	int c = 3;
	int d = 4;
	//i = a++ && ++c && d++;//a先用后加,&&左边是零,右边就不计算了
	//printf("%d %d %d %d\n", a, b, c, d);//1 2 3 4
	j = a++ || ++c || d++;
	printf("%d %d %d %d\n", a, b, c, d);//a先用后加,a已经为真,||左边为真,后面的不用计算; 2 2 3 4
	return 0;
}
3.运行结果;

标签:int,简单,介绍,++,操作符,printf,按位,main
From: https://blog.csdn.net/qq_54029068/article/details/136664968

相关文章

  • 边缘计算+WEB端应用融合:AI行为识别智能监控系统搭建指南 -- 整体介绍(一)
    边缘计算+WEB端应用融合:AI行为识别智能监控系统搭建指南前言硬件设备及技术选型硬件设备选型系统技术选型流媒体服务器选型项目整体结构智能监控系统功能视频纵览预警信息模型管理设备管理摄像头管理前言欢迎来到我们的专栏《边缘计算+WEB端应用融合:AI行为识别智能......
  • CSS 布局介绍
    开始开发一个网页之前,需要设计网页内容布局,风格,交互等等,哪怕简单的网页,也要在脑海中想象一下各个内容之间上下左右的排列顺序,这就要用到CSS布局(CSSLayout),本文将介绍有关这方面的基础,以便更深入学习CSS布局。内容列表:正常布局流(NormalFlow)display属性弹性盒子(FlexBo......
  • 一个简单的实操案例
    需求统计今日总消息量统计今日每小时消息量、发送和接收用户数统计今日各地区发送消息数据量统计今日发送消息和接收消息的用户数统计今日发送消息最多的Top10用户统计今日接收消息最多的Top10用户统计发送人的手机型号分布情况统计发送人的设备操作系统分布情况约3......
  • (码农福利) 介绍几个不用魔法 就能免费使用的AI工具
    因为AI的飞速发展IT行业已经可以说非常的卷了作为程序员如果不具备AI使用的能力很快就会被淘汰但在社区内无法直接谈论魔法大部分程序员可能也不具备魔法今天说一个不需要魔法好用的AI工具我们打开官网https://chandler.bet/#/overView点击GetChromeEx......
  • 实验1_C语言输入输出和简单程序编写
    task1_11#include<stdio.h>2#include<stdlib.h>3intmain()4{5printf("O\n");6printf("<H>\n");7printf("II\n");8printf("O\n");9printf("<H>\n");10p......
  • gbase简单实用
    gbase简单实用gbase数据库版本号:9.5.3.6注意:1.gbase创建完表之后,无法修改数据字段类型与属性(notnull,默认值)2.gbasesql不支持注释--,写sql的时候不要添加注释。3.即使表中添加了主键,也不会有主键约束(列如:主键相同的数据,也会insert进去)4.uuid()是gbase生......
  • odoo17开发教程(5):权限的简单介绍
    在之前的文章中,我们创建了第一个用于存储业务数据的表。在Odoo这样的商业应用程序中,首先要考虑的问题之一是谁可以访问数据。Odoo提供了一种安全机制,允许特定用户组访问数据。本章旨在对权限有个最低要求对了解数据文件(CSV)Odoo是一个高度数据驱动的系统。虽然行为是通过......
  • SortedMap、NavigableMap、TreeMap介绍和使用
    SortedMap、NavigableMap、TreeMap介绍和使用SortedMap接口:SortedMap是一个接口,继承自Map接口,它定义了对键值对按照键的自然顺序或自定义顺序进行排序的功能。SortedMap中的键值对是按照键的顺序排列的,因此可以根据键的顺序进行范围查找和遍历操作。SortedMap接口提供了一......
  • 各个JDK版本介绍
    1.1.JDK8新特性(2014年初)(LTS版本)1、Lambda表达式2、函数式编程3、接口可以添加默认方法和静态方法,也就是定义不需要实现类实现的方法4、方法引用5、重复注解,同一个注解可以使用多次6、引入Optional来避免空指针7、引入Streams相关的API8、引入新的Date/Time相关的API9、新增jdeps命......
  • 简单查重系统
    作业要求作业所属班级软件工程2024链接作业要求作业要求链接作业目标设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论文的文件,在答案文件中输出其重复率。PSPPSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实际......