5.15_操作符详解

1、操作符分类:

算术操作符   +   -   *   /   %

移位操作符   <<   >>

位操作符    &   |   ^

赋值操作符   =   +=  -= ......

单目操作符

关系操作符

逻辑操作符

条件操作符

逗号表达式

下标引用、函数调用和结构成员

2、算术操作符 

+   -    *    /    %

/    整型的除法   1/2-->0  得到的是商

     浮点型的除法   1.0/2-->0.5    1/2.0-->0.5    1.0/2.0-->0.5

%  计算的是整除后的余数   7%2  就是7除2商3余1,最后得到的结果是1,%这个取模操作符的两        端必须是整数。

3、移位操作符

<<   左移操作符

>>   右移操作符

注:移位操作符的操作数只能是整数

移位操作符,移动的是二进制位

给一个值13,可以用二进制,八进制,十进制,十六进制等来表示。

十进制里面的数字每一位都是由0~9来组成

二进制里面只有0和1

八进制是0~7组成

十六进制是由0~9和a~f来表示,a~f就是10~15

整数的二进制表示有3种:

原码

反码

补码

规定:

正的整数的原码、反码、补码相同;

负的整数的原码、反码、补码是要计算的。

例:

7

二进制序列:111 (但其实不够)

7是个整数,整型占4个字节,4个字节就是32比特位(bit),一个字节8个bit,所以

二进制序列应该是:00000000000000000000000000000111

因为7是整数,所以高位是0,0表示他是整数,最高位就是符号位,(最高位是0,表示他是整数,最高位是1,表示他是负数)

所以这个00000000000000000000000000000111就是7的原码,照着7的这个值直接写出来的这个数值就是她的原码,因为正的整数的原码、反码、补码相同,所以也可以认为这个00000000000000000000000000000111是7的反码,补码。

7

00000000000000000000000000000111   --原码

00000000000000000000000000000111   --反码

00000000000000000000000000000111   --补码

-7

10000000000000000000000000000111   --原码    (最高位1表示负数)

负数的反码:原码的符号位不变,其他位按位取反

111111111111111111111111111111111000   --反码

负数的补码:反码的基础上直接+1

111111111111111111111111111111111001   --补码

整数在内存中存储的是补码

 正数  左移操作符: 

左移操作符的计算规则:左边丢弃,右边补0。

 

a的值是不变的。 

负数  左移操作符:

 那通过补码算到原码(这是负数的)

补码-1之后再取反

111111111111111111111111111111110010   --补码

111111111111111111111111111111110001   --反码

10000000000000000000000000001110   --原码 

-(1*(2^3)+1*(2^2)+1*(2^1)+1*(2^0))=-(8+4+2+0)=-14

左移有乘2的效果 

右移操作符:

(有两种,算术移位和逻辑移位)

算术移位:右边丢弃,左边补原符号位

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

正数现在好像测不出它现在用的是算术移位还是逻辑移位。

那怎么测它是是算术移位还是逻辑移位,放个负数就明白了。

a=-7

移位之后,如果是算术移位最高位补的就是1,是负数

如果是逻辑移位最高位补的就是0,变成是正数了。

111111111111111111111111111111111100   --补码

111111111111111111111111111111111011   --反码

10000000000000000000000000000100  --原码   -(1*2(2^2))=-4

说明vs2022编译器采用的是算术右移。

警告:

对于移位运算符,不要移动负数位,这个标准是未定义的。  (int b=a>>-2;  //这个是不行的)

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将TailwindCSS默认单位rem转换为px

前言&#xff1a; 我这里需要将 默认的rem 转换为 px 原因是要使用 postcss-px-to-viewport 插件做移动端适配。 在tailwind.config.js文件中进行配置&#xff1a; 注意&#xff1a;这里 padding&#xff08;内边距&#xff09;、spacing&#xff08;外边距&#xff09;、width…

Spacy的安装与使用教程

官网安装指导教程 https://spacy.io/usage 安装指令 需要根据自己系统的cuda版本选择 nvcc -V pip install -U pip setuptools wheel pip install -U spacy[cuda12x] python -m spacy download zh_core_web_sm python -m spacy download en_core_web_sm

【Linux】系统登录,调用shell,shell配置文件,shell命令,特殊符号,shell快捷键,Linux运行级别,解决无限登录问题,修改提示符

目录 Linux系统的登录方式 以及 调用shell Linux shell 以及 shell配置文件 shell 命令 shell 特殊符号 shell 快捷键 Linux操作系统运行级别 单用户模式下解决无限登录问题 centos7修改命令行提示符 PS1 补充、centos7没有滚动条 Linux系统的登录方式 以及 调用shell…

vue3.0+antdv的admin管理系统vue-admin-beautiful推荐

前言 几年前&#xff0c;笔者自学了vue这一优秀的前端框架&#xff0c;但苦于没项目练手&#xff0c;无意间发现了vue-admin-beautiful这一优秀的前端集成框架。当时就使用它做了一很有意思的小项目---终端监控云平台&#xff0c;实现了前端和后台的整体功能。整体方案介绍参见…

查询新加 字段不返回数据要看 有没有 AllInfoResultMap 有要再里面加字段

查询新加 字段不返回数据要看 有没有 AllInfoResultMap 有要再里面加字段

HTTP客户端手动解析响应体数据

服务端 package mainimport ("easyGo/person""encoding/json""net/http" )func main() {http.HandleFunc("/test", func(w http.ResponseWriter, r *http.Request) {p : &person.Person{Name: "jackie",Age: 30,T: pe…

操作系统-单片机进程状态问题(三态模型问题)

例题&#xff1a;在单处理机计算机系统中有1台打印机、1台扫描仪&#xff0c;系统采用先来先服务调度算法。假设系统中有进程P1、P2、P3、P4&#xff0c;其中P1为运行状态&#xff0c;P2为就绪状态&#xff0c;P3等待打印机&#xff0c;P4等待扫描仪。此时&#xff0c;若P1释放…

Java并发编程VarHandle类

Java 的 VarHandle 是在 Java 9 中引入的一种新机制&#xff0c;旨在提供对变量&#xff08;包括对象字段、数组元素和静态变量&#xff09;的可变引用和非阻塞操作。VarHandle 主要用于并发编程&#xff0c;提供了一种更灵活且性能更高的方式来进行变量访问和更新操作&#xf…

es6新语法和ajax和json

es6新语法 1.定义变量&#xff1a;let 2.定义常量&#xff1a;const <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"…

用友GRP-U8 userInfoWeb SQL注入致RCE漏洞复现 (XVE-2024-10539)

0x01 产品简介 用友GRP-U8R10行政事业内控管理软件是用友公司专注于国家电子政务事业,基于云计算技术所推出的新一代产品,是我国行政事业财务领域最专业的政府财务管理软件。 0x02 漏洞概述 用友GRP-U8R10行政事业内控管理软件 userInfoWeb接口处存在SQL注入漏洞,未授权的…

ADS使用记录之使用RFPro进行版图联合仿真-加入集总元器件

ADS使用记录之使用RFPro进行版图联合仿真-加入集总元器件 ADS使用记录之使用RFPro进行版图联合仿真中已经简单介绍了使用RFPro对版图就行仿真的方法。但是&#xff0c;如果版图中含有一些非微带的结构&#xff0c;比如说电感、电容、晶体管呢&#xff0c;在此举例解释一下。 …

leetcode61-Rotate List

题目 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3] 分析 这道题目用快慢指针即可解&#xff0c;先快指针往前走k个位置&#x…

MyBatis中关于resultType和resultMap的区别

在MyBatis中&#xff0c;resultType和resultMap都是用于处理查询结果的&#xff0c;但它们之间存在一些关键的区别。 映射方式&#xff1a; resultType&#xff1a;直接表示返回类型&#xff0c;它通常对应着Java模型对象&#xff08;如POJO&#xff09;中的实体。当查询出来的…

百度:文心大模型日均处理Tokens文本已达2490亿

今日&#xff0c;记者从百度获悉&#xff0c;文心大模型日均处理Tokens文本已达2490亿。百度表示&#xff0c;这几天&#xff0c;国内外多家厂商相继发布大模型最新进展和相关应用&#xff0c;百度很高兴地看到&#xff0c;“闭源大模型公有云”已经成为全球AI市场的主流趋势。…

Django信号与扩展:深入理解与实践

title: Django信号与扩展&#xff1a;深入理解与实践 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 后端开发 tags: Django信号松耦合观察者扩展安全性能 第一部分&#xff1a;Django信号基础 Django信号概述 一. Django信号的定义与作用 Django信…

NAT技术总结与双向NAT配置案例

NAT的转换方式&#xff1a; 1.静态转换&#xff1a;固定的一对一IP地址映射。 interface GigabitEthernet0/0/1 ip address 122.1.2.24 nat static global 122.1.2.1 inside 192.168.1.1 #在路由器出接口 公网地址 私网地址。 2.动态转换&#xff1a;Basic NAT nat address-gr…

有多少小于当前数字的数字

链接&#xff1a;https://leetcode.cn/problems/how-many-numbers-are-smaller-than-the-current-number/description/ 思路&#xff1a; 最简单的思路来说&#xff0c;就是双重for循环进行遍历&#xff0c;来判断个数&#xff0c; 优化思路&#xff0c;其中一个思路就是递推 …

day3 leetcode20 有效的括号

有效的括号 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相…

C语言操作符详解(一)

算术操作符&#xff1a; 算术操作符有&#xff1a;加法 减法- 乘法* 除法/ 取余% 算术操作符该注意的点&#xff1a; 1.除了%操作符之外&#xff0c;其他的操作符都可以作用于整数和浮点数。 2.对于/操作符来说&#xff0c;两个数都是整数的话&#xff0c;结果只能是…

[数组专题]力扣88

1. 力扣88 : 合并两个有序数组 题 : 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&…