计算机初学1-CSDN博客
一、
像素点信息包含坐标和颜色值:(x, y, k1, k2, k3)
x、y为横纵坐标,使用 short 类型存储(各占16位)
k1(红)、k2(绿)、k3(蓝)既代表颜色又代表亮度,发光等级范围为0~255(各占8位)
每个像素点大小为:16 + 16 + 8 + 8 + 8 = 56 bit
最终由硬件将比特信号转换为视觉信号显示在屏幕上。
二、
比特流:以1 bit 为单位
字节流:以8 bit(1字节)为单位
字符流:以字符为单位(每个字符占1~4字节,取决于编码方式,如UTF-8)
网络流、文件流本质上都是由上述流构成的。所有流底层都是以数组(字节数组或字符数组)形式存储,对流的操作本质上就是对数组的操作。
三、
同一个字符在不同字号下,其编码值相同,但渲染后的像素点阵分布不同。字号大小不同,每个字符所占的像素网格数量不同,因此像素分布形状不一样(除非是完全按比例缩放)。用放大镜观察不同字号的同个字符,可以看到它们的像素分布形状存在差异。
四、
函数以栈的方式存储和运行。每当一个新函数被调用时,系统会将其相关信息(参数、局部变量、返回地址等)压入栈中,函数运行完毕后出栈。每时每刻只有栈顶的函数处于运行状态,其他函数暂停执行。
main函数运行的过程称为一个线程,即一条线性的调用链。一个进程中可以同时包含多个线程。线程是操作系统进行任务调度的最小单位。
栈的大小是固定的,如果递归过深或局部变量过大,会导致栈溢出(Stack Overflow)。
main方法本身也运行在栈结构中。变量的声明属于入栈操作,变量作用域由花括号{}界定,当程序执行到对应的}时,该作用域内的变量出栈(被销毁)。变量的作用域本质上由栈结构来管理。
当句柄(引用/指针)出栈时,其指向的堆内存中的值并不会随之释放(需要手动释放或由垃圾回收机制处理)。
可以将基本类型(如 int、char、short)视为原子,结构体类型视为由多个原子组合而成的分子。
五、
在C语言中,声明变量时会在内存中申请存储空间。
以指针变量为例,它本身在栈上占用一块区域,存储的是目标内存的地址。
对于多级指针,每个区域存储的是下一个区域的地址,最终指向实际存储值的区域。未初始化的变量区域中存储的是随机的二进制数据(残留值)。
六、
计算机中具备存储能力的部件主要有:CPU(包含三级高速缓存,即L1/L2/L3 Cache)、内存和硬盘(含SSD)。
内存进行删除操作时,实际上并不会立刻擦除数据,而是将该内存区域标记为"无效"或"可重用"。原有数据仍然驻留在该区域中,直到被新数据覆盖才会被真正清除。