如果还有后面,就不再写前面这段。自己在复习,顺便记下来,帮助熟悉。两年前没有毕业的校招,被别人一道手写二进制转十进制伪代码的题打懵了,应该很少有人和我一样到现在才知道怎么写这种简单程序。接着去一家小公司,他说int有多少位,我还在想一个字节有多少位。
计算机基础简略考点
1、进制转换公式、算法、代码实现
例1:十进制转二进制。
公式:采用除 2 取余法,得到的余数,其高低位顺序由后(下)向前(上)取;
算法:
例1.1:将233转为二进制。
- 233/2=116 —— 1
- 116/2=58 —— 0
- 58/2=29 —— 0
- 29/2=14 —— 1
- 14/2=7 —— 0
- 7/2=3 —— 1
- 3/2=1 —— 1
- 1/2=0 —— 1
答案为 11101001
代码实现(C语言)
#include<stdio.h>
int main(){
int a = 233;
int b[100];
int i=0;
while(a != 0){
b[i]=a%2;
i++;
a=a/2;
}
int j;
for(j=i-1;j>=0;j--){
printf("%d",b[j]);
}
return 0;
}
例2:二进制转十进制
公式:将二进制数按权展开乘幂求和
算法:
例2.1:将1100101转十进制
代码实现(C语言)
#include<stdio.h>
#include<math.h>
#include<string.h>
int main(){
char s[20]="1100101";
int sum=0,k;
int i;
k=strlen(s)-1;
for(i=0;s[i]!='\0';i++){
int c = (int)(s[i]-'0');
sum += c*pow(2,k);
k--;
}
printf("%d",sum);
}
2、数据存储
- 位(bit),最小的数据单位,二进制,只有0或者1
-
位模式是若干位组成的序列
-
将8个位组成的位模式称为字节(Byte),1Byte=8bit
-
1024B = 1 kB ,1024kB = 1mB ....
-
内存地址,指的是内存储器中用于区分、识别各个存储单元的标识符。内存地址使用无符号的二进制整数表示。
-
数据在内存储器中是以字为单位存储的。