操作符(‘/ ‘ ‘%‘ ‘&‘ ‘|‘ ‘<< ‘‘>>‘)的应用及注意事项

简介: 操作符(‘/ ‘ ‘%‘ ‘&‘ ‘|‘ ‘<< ‘‘>>‘)的应用及注意事项
#define _CRT_SECURE_NO_WARNINGS 1 
#include<stdio.h>
int main()
{
    //除号/
    int a = 6/5;//结果为1; 整数除法
    printf("%d\n", a);
    float c = 6.0 / 5;
    printf("c=%lf\n", c);//1.200000
    float d = 6 / 5.0;
    printf("d=%lf\n", d);//1.200000
    //取余%
    int f = 7 % 3;
    printf("f=%d\n", f);//%为取余,余1          %两侧不能为小数!!!!!!!!
               //内存中存放的是二进制的补码
            //原码:数值的对应的二进制,,,反码:符号位不变,其他位按位取反 补码:反码+1
         // 对应正整数,原码反码补码相同
       //内存中存放的是二进制的补码      正整数的二进制表示有三种,原码,反码,补码
     //原码:数值的对应的二进制,,,反码:符号位不变,其他位按位取反 补码:反码+1
   //如果是正整数的话,将原码直接左移右移(左移右移操作符)就可以了,因为他的原码就是补码,如下                     
    int g = 2;
    int h =g>> 1;//(右移操作符>> (向右移动一位))
    printf("h=%d\n", h);//打印结果为1   因为2的二进制是00000000000000000000000000000010向右移动后为
                                                     //00000000000000000000000000000001,二进制是1
    //如果是负整数,需要将数转化为二进制的原码---反码---补码---(左移或右移)新的补码---反码---原码,如下
    int i = -10;
    int j = i >> 1;     
    printf("j=%d\n", j);//打印结果为-5
                   //-10的原码为1000000000000000000000000000000000001010
                        //反码为1111111111111111111111111111111111110101(原码除第一位不变,其他位取反)
                        //补码为1111111111111111111111111111111111110110(反码加1)(存储在电脑中)
                        //  变为1111111111111111111111111111111111111011右移操作符(算术右移)
                  //显示时反码为1111111111111111111111111111111111111010(补码-1)
                        //原码为1000000000000000000000000000000000000101(反码取反)(打印出来为-5)
    //&---按位与(2进制) 
    int k = 3;
    int l = 5;
    int m = k & l;
    printf("m=%d\n",m);//打印结果为1
                        //3的二进制是00000000000000000000000000000011
                        //5的二进制是00000000000000000000000000000101
              //按位与,(有1和0,取0) 00000000000000000000000000000001,为1
     //|---按位或(2进制)     
    int n = 3;
    int o = 5;
    int p = n | o;
    printf("p=%d\n", p);//打印结果为7,因为3的二进制是00000000000000000000000000000011
                        //5的二进制是                 00000000000000000000000000000101
                               //按位与,(有1和0,取1) 00000000000000000000000000000111,为7
    //^---按位异或(2进制)(相同为0,相异为1)
    int q = 3;
    int r = 5;
    int s = q ^ r;
    printf("s=%d\n", s);//打印结果为6,因为3的二进制是00000000000000000000000000000011
                        //5的二进制是                 00000000000000000000000000000101
                        //按位异或,(相同为0,相异为1) 00000000000000000000000000000110,为6
    //不能用第三个值,交换t ,u
    //方法一:(适用于数值不是超级大的数,否则转化为二进制就过大,溢出)
    int t = 3;
    int u = 5;
    printf("t=%d u=%d\n", t,u);
    t = t + u;
    u = t - u;
    t = t - u;
    printf("t=%d u=%d\n", t,u);
    //方法2:(异或)       //a^a=0;   0^a=a;   相同为0,不同为1
    int t = 3;              //a^b^b=a;   
    int u = 5;
    printf("t=%d u=%d\n", t, u);
    t = t ^ u;
    u = t ^ u;
    t = t ^ u;
    printf("t=%d u=%d\n", t, u);
    return 0; 
}

6083c67dddfb47a48e36ed110b9c917e.png

6afa03778e304c39b5bcd4787199af8d.png

b811cd2333ea4d6592986e0a33412ab7.png

相关文章
|
存储 应用服务中间件 nginx
使用filebeat简单收集多个nginx应用服务器日志(一)
使用filebeat简单收集日志 1.filebeat原理与介绍 filebeat收集日志的原理类似于tail -f命令,等待应用日志产生后,每隔30s将日志进行收集,收集完成后存放在es的索引库中,最后展示在kibana上
1900 0
使用filebeat简单收集多个nginx应用服务器日志(一)
|
10月前
|
Java 测试技术 开发者
通义灵码助力高效开发——我的实践心得
作为一名Java开发工程师,我一直在寻找提高开发效率的方法。最近,我尝试了通义灵码的个人版新功能,并取得了显著的效果。本文将分享我的实践场景、效果和心得。
317 1
|
11月前
|
缓存 负载均衡 监控
slb基于DNS的负载均衡
slb基于DNS的负载均衡
700 8
|
SQL 关系型数据库 MySQL
Python中Pymysql库的常见用法和代码示例
`pymysql` 是一个用于连接 MySQL 数据库的 Python 库,支持 SQL 查询的执行和结果处理。通过 `pip install pymysql` 安装后,可使用 `connect()` 方法建立连接,`cursor()` 创建游标执行查询,包括数据的增删改查,并通过 `commit()` 和 `rollback()` 管理事务,最后需关闭游标和连接以释放资源。
554 0
|
12月前
|
人工智能
歌词结构的艺术:写歌词的技巧和方法深度剖析,妙笔生词AI智能写歌词软件
歌词是音乐的灵魂伴侣,其结构蕴含独特艺术魅力。掌握歌词结构技巧是创作者成功的关键。开头需迅速吸引听众,主体部分通过叙事、抒情或对话形式展开,结尾则点睛收尾。创作时可借助《妙笔生词智能写歌词软件》,利用 AI 功能优化歌词,提供丰富模板和案例,助力灵感涌现,轻松掌握歌词结构艺术。
|
10月前
解锁时间价值:日程安排管理的科学方法
本文探讨了日程安排管理的重要性、常见问题及优化策略,强调了有效管理时间对提高工作效率、减轻压力、实现目标和平衡生活的重要性。通过设定SMART目标、运用优先级管理工具、合理规划时间、利用数字工具和技术、管理干扰与分心、保持灵活性以及激励自己与团队等策略,帮助个人和企业构建高效的时间管理体系。
|
分布式计算 大数据 数据挖掘
阿里云服务器计算型c8i、通用型g8i、内存型r8i实例测评与价格参考
阿里云服务器计算型c8i、通用型g8i、内存型r8i实例是阿里云的第八代云服务器实例规格,是除了计算型c7和c8y、通用型g7与g8y、内存型r7与r8y之外同样深受用户喜欢的云服务器实例规格。本文将详细介绍阿里云第八代云服务器中的计算型c8i、通用型g8i、以及内存型r8i实例,包括它们的技术特性、适用场景以及最新的活动价格信息。
阿里云服务器计算型c8i、通用型g8i、内存型r8i实例测评与价格参考
|
数据挖掘 测试技术 UED
A/B测试
【10月更文挑战第10天】A/B测试
539 2
|
算法 调度
【完全复现】基于改进粒子群算法的微电网多目标优化调度
该文档描述了一个使用改进粒子群算法实现的微电网多目标优化调度的Matlab程序。该模型旨在最小化运行成本和环境保护成本,将多目标问题通过权值转换为单目标问题解决。程序中定义了决策变量,如柴油发电机、微型燃气轮机、联络线和储能的输出,并使用全局变量处理电负荷、风力和光伏功率等数据。算法参数包括最大迭代次数和种群大小。代码调用了`PSOFUN`函数来执行优化计算,并展示了优化结果的图表。
|
负载均衡 算法 微服务
常见的微服务流量治理策略
常见的微服务流量治理策略
812 3