IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C不会断句?【前后置,位,移位操作符详解】 b = ++c c++ ++a a++ -> 正文阅读

[C++知识库]C不会断句?【前后置,位,移位操作符详解】 b = ++c c++ ++a a++

介绍:首先明确基础知识

b=a++? ?把a赋给b? 然后a+1

c=--a? ? ?先a-1? ? ?然后把结果赋给a和c

逗号表达式的优先级较低,从左往右算

整数的原反补相同

内存中存储的都是二进制的补码,单位是比特,一个int整型也就是4字节,32比特位

直接按照数字写的? 打印的? 都是原码

&? 按位与(二进制位

|? 按位或

^按位异或

目录

1.断句

2.移位操作符

3.位操作符


1.断句

int main()
{
	int a, b, c;
	a = 5;
	c = ++a;
	b = ++c, c++, ++a, a++;
	b += a++ + c;
	printf("a = %d b = %d c = %d\n:", a, b, c);
	return 0;
}

这个代码的结果是多少呢?

在明确介绍里的知识之后我们知道

c=++a

这里计算之后c=a=a+1=6

b = ++c, c++, ++a, a++;

这个则需要我们清楚,他其实是b=++c? (c++, ++a, a++);

首先算b=++c? ? b=c=6+1=7

(c++, ++a, a++)? 的计算顺序是 c=c+1=8?,? a=a+1=7 ,? a=a+1=8

此时a=8? b=7? c=8

b += a++ + c? 其实是b=b+ a?+c? ?(因为a++是先把a赋给这里a++对应的地方,然后在整个式子算完之后再把a自身+1

也就是b=7+ 8+8=23

然后a=a+1=9

c还是=8

除此之外还看到了网上一个很有意思的式子

x=++a+b+++c++

到底改怎么断句呢

答案是x=(++a)+(b++)+(c++)

这个的突破口在于最后的++一定是和c配合,从后往前分析

2.移位操作符

?>>右移操作符

<<左移。。。

看箭头指向哪里就应该是向哪个方向移动

a<<1? ? a向左移动1(一个比特位)

移位移的是二进制位,内存中整数的存储都是补码

所以移动的时候也是写出补码再移动(因为如果只是原码移动那较小的负数左移1岂不是变成正数)?

补码移动结束之后应该变成原码,因为打印的都是原码

原反补规则:

原码? —— 符号位不变其他位按位取反? ——>反码——+1——>补码

补码? ——-1——>反码——符号位不变其他位按位取反? ——>原码

其实仔细思考符号位不变的原因也是为了防止造成符号的丢失

<<补码左移之后? ?左边丢弃? ?右边补充0

>>?

分为两种

1.算数右移? ? 补码右移之后左边补充符号位

2.逻辑右移? ? ?补充0

一般来说编译器采用的都是1

?

3.位操作符

0为假? ?非零为真

&? ?其实和数学上“且”的逻辑相同:全真才真,有假则假

|? ? 等价“或” 有真则真,全假才假

^? ?相同为0,相异为1?

以上的相同或相异都是在补码上操作的?

写给和我一样的普通人:

自己接触C一个月,整体的感觉就是很艰难,也许非班科的生活就是这么忙碌,也许入门的过程就是这样困难,也许普通人的认知上限就摆在那里,

但是通过我的经验,其实自己有多逻辑清晰,代码就有多“聪明”,刷题的时候试着先在纸上写出思路再去实践,多去回顾经典题型,手感和眼界很重要

不要计较自己的能力没有别人强,只是一个开始谁会学的更扎实也未可知

最后引用一个我很喜欢的作者——史铁生的一句话(鲁迅太经典大家都听腻了哈哈)

“大多数时候的放弃,是你败给了自己,而不是命运。”? ——《我与地坛》,史铁生

创作不易,感谢观看?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 10:25:04  更:2022-08-06 10:26:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/9 23:30:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码