2.操作符详解

1.10进制转二进制方法

所以125的二进制就是1111101

2.2进制转8进制:

从2进制序列中右边最低位开始向左每3个2进制位换算为一个8进制位,剩余不够3个2进制位的直接换算

例:01101011转为01 101 011

即1 5 3 

即8进制的153

还原回去的话:

将3化为011放最右边,5化为101放前者的左边,1化为1放前者的前边

3.而二进制转16进制:

从2进制序列中右边最低位开始向左每4个2进制位换算成一个8进制位,剩余不够4个2进制位的直接换算

例:01101011

化为0110 1011

即6b

还原回去的话:

将b化为1011放最右边,6化为110放前者的左边

4.有符号 的整形的二进制位最高位是符号位,其余是数值位

5.1个整形32个bit

6.原码除了符号位不变,其他位按位取反得到的是反码

7.原码取反(符号位不变)加 1,得到补码,补码取反(符号位不变)加一,得到原码

8.整数转化为补码存储入计算机,计算机内部对整形的操作都是基于补码进行的

9.移位操作符只能对整数进行操作

10.左移操作符:左边丢弃,右边补零(对补码进行操作,已核实) <<

11.右移操作符:(大多编译器都用的算术右移) >>

逻辑右移:左边用零补充,右边丢弃

算术右移:左边用原有的符号填充,右边丢弃

12.真正打印出来的还是原码

13.不要用移位操作符移动负数位

14.

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>int main()
{int n = 10;printf("%d\n", n << 62);return 0;
}

这是标准未定义的,整形一共就32个bit

15.位操作符:&(按位与), |(按位或), ^(按位异或), ~(按位取反)

16.&&和 ||是逻辑操作符

17.位操作符的操作数必须是整数

18.& :

int c = a & b; 

二者的补码化合,

有 0则 0,全 1才 1(符号位也遵从),

存入C中

19.| :

int c = a | b;

二者的补码化合,

有 1则 1,全 0才 0(符号位也遵从),

存入C中

20.^ :

int c = a | b;

二者的补码化合,

同 0异 1(符号位也遵从),

存入C中

21.~ :

int a = 10;

int b = ~a;

得到的b是a的补码(符号位也是)按位取反得到的值

22.一道 面试 题:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>//不创建临时变量来交换两个整形变量的值
int main()
{int a = 10;int b = 20;//a ^ a == 0//0 ^ a == a//^ 服从交换律 a = a ^ b;b = a ^ b;a = a ^ b;printf("%d\n", a);printf("%d\n", b);return 0;
}

方法2:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>//不创建临时变量来交换两个变量的值
int main()
{int a = 10;int b = 20;a = a + b;b = a - b;a = a - b;printf("%d\n", a);printf("%d\n", b);return 0;
}

异或的方法不会有溢出的风险,但是效率低点

23.题

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>int main()
{//求一个整数存储在内存中的二进制位1的个数//下列代码,负数也行int ret = -1;//scanf("%d", &ret);int i = 0;int n = 32;int count = 0;for (i = 0; i < n; i++){int tem = 0;tem = ret & 1;if (tem == 1){count++;}ret >>= 1;}printf("%d\n", count);return 0;
}

另一种方法:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>int my_count(unsigned int n)//此处传来的是-1的补码
{//从问题://得到一个十进制的整数中的每一位用方法:/ 10和% 10//处得到启发//得到一个十进制的整数中的每一位用方法:/ 2和% 2int count = 0;int i = 0;while (n != 0){if (n % 2 == 1){count++;}n = n / 2;}return count;
}
int main()
{//求一个整数存储在内存中的二进制位1的个数//下列代码,负数也行int count = my_count(-1);printf("%d", count);return 0;
}

另一个方法:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>int my_count(int n)
{int count = 0;while (n != 0){n = n & (n - 1);count++;}return count;
}
int main()
{//求一个整数存储在内存中的二进制位1的个数//下列代码,负数也行int count = my_count(10);printf("%d", count);return 0;
}

上边的那个题做一个知识的延伸:

判断一个数是否是2的次方数DA搜:

24.做题时,一开始想不到的话就先写出前几个数据以看规律

25.

00000000000000000000000000000100

通过 ~ 得到

11111111111111111111111111111011

26.

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>int func(int m, int n,int t)
{int i = 0;if (t == 1){t = t << (n - 1);m = m | t;}else{t = -1;t = t & (t - 1);t = t << (n - 1);m = m & t;int tem = 1;//调回去int i = 0;for (i = 0; i < n - 1; i++){m = m | (tem << i);}}return m;}int main()
{//把一个数的某个二进制位制 0或制 1int m = 0;scanf("%d", &m);//数字int n = 0;scanf("%d", &n);//第几位int i = 0;for (i = 31;i >= 0 ; i--)//打印一个整数存储在内存中的二进制位{printf("%d ", (m >> i) & 1);}printf("\n");int e = func(m, n, 0);//第三个参数为要制为1还是0for (i = 31; i >= 0; i--)//打印一个整数存储在内存中的二进制位{printf("%d ", (e >> i) & 1);}return 0;
}

上述函数还是少了两个功能:不能制正数的0,不能制负数的1,要加上去的话无非就是要多加上两个条件而已

27.逗号表达式从右往左执行,拿到的是最后一个值.注:前边的表达式要都执行一遍

28.5也可以是操作数

29.sixeof是一个单目操作符

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

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

相关文章

使用 React 和 ECharts 创建地球模拟扩散和飞线效果

在本博客中&#xff0c;我们将学习如何使用 React 和 ECharts 创建一个酷炫的地球模拟扩散效果。我们将使用 ECharts 作为可视化库&#xff0c;以及 React 来构建我们的应用。地球贴图在文章的结尾。 最终效果 准备工作 首先&#xff0c;确保你已经安装了 React&#xff0c;并…

oracle数据恢复—Oracle报错“system01.dbf需要更多的恢复来保持一致性”的数据恢复案例

oracle数据库恢复环境&故障&#xff1a; 一台Windows server操作系统的服务器上部署Oracle数据库。 服务器意外断电导致oracle数据库报错&#xff0c;报错信息&#xff1a;“system01.dbf需要更多的恢复来保持一致性”。由于该oracle数据库并没有备份&#xff0c;仅有一些断…

多维时序 | MATLAB实现TSOA-TCN-Multihead-Attention多头注意力机制多变量时间序列预测

多维时序 | MATLAB实现TSOA-TCN-Multihead-Attention多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实现TSOA-TCN-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现TSOA-TCN-Multihead-…

【Python】数据分析原来这么简单?一文总结清楚!

前言 在当今信息爆炸的时代&#xff0c;海量的数据源源不断地被生成、收集和存储。这些数据蕴藏着无限的可能性&#xff0c;但要从中提取有用的信息和洞见&#xff0c;却需要数据分析这门至关重要的技能。Python&#xff0c;作为一门强大而灵活的编程语言&#xff0c;为数据分…

Proxmox创建CentOS虚拟机

文章目录 下载ISO安装文件上传创建虚拟机启动虚拟机设置DNS CentOS配置国内安装源备份原有安装源下载更新国内源清理yum缓存制作新配置文件缓存 下载ISO安装文件 下载地址&#xff1a;https://www.xitongzhijia.net/ 也可去官网进行下载 上传 下面介绍直接通过页面上传&…

YOLOv8算法改进【NO.93】使用resnet18网络作为主干特征提取网络

前 言 YOLO算法改进系列出到这&#xff0c;很多朋友问改进如何选择是最佳的&#xff0c;下面我就根据个人多年的写作发文章以及指导发文章的经验来看&#xff0c;按照优先顺序进行排序讲解YOLO算法改进方法的顺序选择。具体有需求的同学可以私信我沟通&#xff1a; 第一…

【学习笔记】V8垃圾回收策略

V8 V8是一款主流的JavaScript执行引擎V8采用即时编译,速度比较快V8内存设限,64位操作系统中上限为1.5G,32位系统中不超过800M V8垃圾回收策略 采用分代回收的思想内存分为新生代\老生代针对不同对象采用不同算法 v8常用的GC算法: 分代回收、空间复制、标记清除、标记整理、…

docker学习(七、搭建mysql8.2主从)

一、主库搭建 1.构建主库镜像 # 运行mysql镜像&#xff0c;配置端口3307为主库 docker run -p 3307:3306 --name mysql-master --privilegedtrue -v /mydata/mysql-master/log:/var/log/mysql -v /mydata/mysql-master/data:/var/lib/mysql -v /mydata/mysql-master/conf:/etc…

STM32-固件打包部署

STM32-固件打包部署 Fang XS.1452512966qq.com STM32固件输出 工程上使用Keil开发STM32软件&#xff1b;在调试过程中&#xff0c;可直接编译下载&#xff1b;例如bootloader和APP&#xff0c;在调试时&#xff0c;可以直接下载2次&#xff1b;但是工程上&#xff0c;需要大…

TMTS汽车电子仿真及测试研讨会笔记请查收!

11月29日&#xff0c;德思特2023年度TMTS汽车电子仿真及测试研讨会圆满结束。感谢大家的观看与支持&#xff01; 在直播间收到一些观众的技术问题&#xff0c;我们汇总了热点问题并请讲师详细解答&#xff0c;在此整理分享给大家&#xff0c;请查收&#xff01; 面向汽车T-BOX…

EasyRecovery2024苹果电脑mac破解版安装包下载

EasyRecovery是一款操作安全、价格便宜、用户自主操作的非破坏性的只读应用程序&#xff0c;它不会往源驱上写任何东西&#xff0c;也不会对源驱做任何改变。它支持从各种各样的存储介质恢复删除或者丢失的文件&#xff0c;其支持的媒体介质包括&#xff1a;硬盘驱动器、光驱、…

CSS中神奇的filter属性

CSS是Web开发中不可或缺的一部分&#xff0c;它可以帮助开发者在页面上添加各种各样的样式和效果。其中一个比较神奇的CSS属性就是filter&#xff0c;它可以让我们实现各种有趣的图形处理效果。 一、filter属性的基础 filter属性是CSS中用于对元素进行图形效果处理的属性之一…

java-集合的补充

常见基础集合汇总 数据结构&#xff1a;栈 数据结构分为&#xff1a; &#xff08;1&#xff09;逻辑结构 &#xff1a;--》思想上的结构--》卧室&#xff0c;厨房&#xff0c;卫生间 ---》线性表&#xff08;数组&#xff0c;链表&#xff09;&#xff0c;图&#xff0c;树&…

stm32F407-GPIO的使用——点亮LED并且讲解各个寄存器

stm32F407-GPIO的使用——点亮LED并且讲解各个寄存器 本文为stm32GPIO的介绍与使用&#xff0c;例子是简单的LED点亮。 一、 GPIO GPIO&#xff08;General Purpose I/O Ports&#xff09;意思为通用输入/输出端口&#xff0c;通俗地说&#xff0c; 就是一些引脚&#xff0c;可…

十个Vue3实用但是冷门的API

文章目录 一、前言二、readonly三、shallowRef四、shallowReactive五、toRef & toRefs5.1、 toRef5.2、toRefs 六、toRaw & markRaw & unref6.1、toRaw6.2、markRaw6.3、unref 七、effectScope & onScopeDispose7.1、收集副作用7.2、全局状态管理 八、provide …

HTML面试题---专题一

文章目录 一、前言二、 HTML5 中 <header> 和 <footer> 标签的用途是什么&#xff1f;三、如何在 HTML 中嵌入 SVG&#xff08;可缩放矢量图形&#xff09;文件&#xff1f;四、解释 contenteditable 属性的用途五、如何创建随屏幕尺寸缩放的响应式图像&#xff1f…

3 文本分类入门finetune:bert-base-chinese

项目实战&#xff1a; 数据准备工作 bert-base-chinese 是一种预训练的语言模型&#xff0c;基于 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;架构&#xff0c;专门用于中文自然语言处理任务。BERT 是由 Google 在 2018 年提出的一…

迅腾文化助力企业品牌创新,加快增强品牌发展新动能

迅腾文化助力企业品牌创新&#xff0c;加快增强品牌发展新动能 随着市场竞争的日益激烈&#xff0c;品牌创新已成为企业持续发展的关键。为了在市场中脱颖而出&#xff0c;许多企业纷纷寻求外部合作伙伴以加快品牌发展。广州迅腾文化传播有限公司拥有13年品宣经验的企业&#…

关于Cython生成的so动态链接库逆向

来个引子&#xff1a;TPCTF的maze题目 如何生成这个so文件 为了研究逆向&#xff0c;我们先搞个例子感受一下生成so的整个过程&#xff0c;方便后续分析 创建对应python库文件 testso.py def test_add(a,b):a int(a)b int(b)return a bdef test_calc(li):for i in range…

JavaWeb笔记之MySQL数据库

#Author 流云 #Version 1.0 一、引言 1.1 现有的数据存储方式有哪些&#xff1f; Java程序存储数据&#xff08;变量、对象、数组、集合&#xff09;&#xff0c;数据保存在内存中&#xff0c;属于瞬时状态存储。 文件&#xff08;File&#xff09;存储数据&#xff0c;保存…