一、什么是进制
进制,即进位计数制,说白了就是一种计数方法。
二、如何理解进制
可以利用商品打包原理理解进制:
N进制表示每N件商品打包为一个小包裹,每N个小包裹打包为一个大包裹,依次类推。即十进制每位取值最大到9,八进制每位取值最大到7,二进制每位取值最大到1(即0或1)。
三、二进制
存储的最小单位为bit(比特),一个bit表示一个二进制位,一个二进制位是一个电容。低电平表示0,高电平表示1。
最小的运算单位是字节,8bit=1字节(byte)能表达 -128~127 ;八位二进制位,第一个表示符号位,0表示正,1表示负。最大的01111111表示127,最小的10000000表示-128。
1024byte=1Kb
1024kb=1Mb
1024mb=1Gb
1024gb=1Tb
其他进制可类比理解
进制转换就是进制之间的转换
源码如下
#include#include #include using namespace std; long toTen(char a[], int bit) { int length = strlen(a); int i, b=1,sum=0; //i要做数组a的下标,注意其起止范围 for(i=length-1;i>=0;i-- ) { if(a[i]>='A') { sum += (a[i]-'A'+10) *b; b *= bit; } else { sum += (a[i]-'0') *b; b *= bit; } } return sum; } void tentoN(long int tenn,int m){ int r[500]; int j=0; int shang=tenn; while(shang!=0){ r[j++]=shang%m; shang=shang/m; } for(int i=j-1;i>=0;i--){ if(r[i]>=10){ printf("%c",r[i]-10+'A'); }else{ printf("%d",r[i]); } } } int main() { int n; char a[500]; char renyi[500]; int m; long int tenn; printf("原进制:n"); scanf("%d",&n); printf("数值:n"); scanf("%s",a); printf("最终进制:n"); scanf("%d",&m); tentoN(toTen(a,n),m); return 0; }
运行结果如下:



