为什么32位操作系统只能最大支持4G内存?
32位操作系统,配合32位CPU,寻址空间位2^32次方,计算出来是4294967296字节,就是4G,32位系统最大支持4G空间,如果想要32位系统支持4G以上空间的话,就要用PAE的特殊内核,采用特殊方式访问,
64位操作系统配合64位CPU,寻址空间是2^64次方,计算出来是18446744073709551616字节
十进制转换为二进制32位如何实现
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[32]={0};
int n = 0;
int num;
scanf("%d",&num);
while(num){
a[++n] = num%2;
num = num/2;
}
for(int i = 31;i>0;i--){
printf("%d",a[i]);
}
}
对指针的理解
C语言指针定义
int a;
int *p = &a; // 定义指针变量
*p = 5;
c语言指针空间
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
char *p = (char*)&a;
*p = 'a';
*(p+1) = 'b';
*(p+2) = 'c';
*(p+3) = 'd';
printf("%x\n",a); //64636261
//可以自己手动一下,
}
该段代码很好的阐述了,我声明的int,操作系统就为我们开辟了4字节内存空间,但是我们强制转换成了char,那么我赋值的四个char刚好覆盖了之前我声明int操作系统为我开辟的空间,所以我们用这种方式进行赋值后,打印会生成abcd的四个ASCII码。
984

被折叠的 条评论
为什么被折叠?



