
编程基础
文章平均质量分 72
以C语言为基础,总结一些概念
叫嚣的泡芙
这个人很完蛋,什么都不会写
展开
-
秒懂地址与指针的关系
计算机的内存被划分为一个一个小的空间,每一个空间都被编上了编号。这种编号被称为地址。现在摆在我们面前有两个问题如何给编号,给什么样的编号呢?即如何编址?一个空间要给划分多大呢?如何产生地址我们在日常中经常说,我这个电脑是32位的,我这个电脑是64位的。这里的32位和64位分别指的是,有32根地址线和64根地址线。地址线就像电线,一旦通电里面的电流就有正负电之分。用1代表正电,0代表负数。以32位为例会产生如下可能000000000000000000000000000000000000原创 2021-05-19 22:37:40 · 3789 阅读 · 0 评论 -
两张图搞懂大端和小端
什么是大端小端大端(存储)模式,是指数据的低位保存在內存的高地址中,而数据的高位,保存在内存的低地址中。小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高地址中。用下面VS2019运行代码举例int a = 20补码:00000000000000000000000000010100补码换算为十六进制:0x00000014根据下面图示,0x00000014中低位14,放在了内存的低地址中。所以当前VS2019采用的是小端存储。如果十进制的20不好理解,我原创 2021-05-15 18:58:20 · 1510 阅读 · 1 评论 -
两分钟看懂原码、反码和补码
数据在内存中是如何存在的呢?我们不妨用VS2019的调试窗口来看一下下面的代码。int main(){ int a = 20; int b = -10; return 0;}查看a的地址存放的数值,是一个十六进制数:14 00 00 00再查看a的地址存放的数值,也是一个十六进制数:f6 ff ff ff到底是怎么存的?使20存成14 00 00 00,-10存成f6 ff ff ff呢?原码、反码和补码计算机中的有符号数有三种表示方法,即原码、反码和补码。有符号数分为正数和原创 2021-05-14 21:30:20 · 1187 阅读 · 0 评论 -
整型提升
整型提升是隐式类型转换的一种,隐式类型转换顾名思义就是偷偷的进行转换。这种类型转换所做的动作我们平时都不会注意到,因为他是偷偷的发生的。C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。——《C和指针》这是书上的概念,太长,而且还看不懂。下面我举个例子char a,b,c;......a = b + c;b和c的值被提升为普通整型,然后再执行加法运算。加法运算完成之后,结果将被截断,然后再原创 2021-05-14 17:16:49 · 806 阅读 · 6 评论 -
比特、字节
位(bit)来自英文bit,音译为“比特”,表示二进制位。位是计算机内部数据储存的最小单位,每个0或1就是一个位(bit),11010100是一个8位二进制数。位是数据存储(计算机中信息)的最小单位。计算机中的CPU位数指的是CPU一次能处理的最大位数。例如,32位计算机的CPU一次最多能处理32位数据。字节(Byte)8bit就称为一个字节(Byte), 1Byte=8bit。记为Byte或B,是计算机中信息的基本单位。字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定原创 2021-05-13 23:00:37 · 2345 阅读 · 0 评论 -
逻辑与和按位与、逻辑或和按位或的区别
首先分别明确一下他们各自的概念。按位与和按位或按位与和按位或都属于位操作符。注意:位操作符的操作数必须是整数。按位与“&”按二进制位对应的位进行与运算,对应位都为1时,结果才为13&53的二进制: 00000000000000000000000011 //32位系统中5的二进制: 00000000000000000000000101 //32位系统中按位与的结果:00000000000000000000000001代码验证int main(){原创 2021-05-13 21:57:01 · 17877 阅读 · 2 评论 -
按位取反的工作原理
在了解是什么按位取反之前,首先要知道数据在内存中是以二进制补码的形式存放。比如:-1-1的原码:10000000000000000000000000000001-1的反码:11111111111111111111111111111110-1的补码:11111111111111111111111111111111经过推导得出-1的补码是11111111111111111111111111111111我们用VS2019验证一下。int main(){ int a = -1; r原创 2021-05-13 18:03:45 · 2299 阅读 · 0 评论