各进制间的转换进制的基本知识十进制转二进制二进制转十六进制(四位截取法)十六进制转二进制二进制转十进制(四位截取法)MATLAB中的进制转换进制转换基础基数:进位计数制所使用的数码个数十进制:(D)有10个基数:0~~9,逢十进一二进制:(B)有2个基数:0~~1,逢二进一八进制:(O)有8个基数:0~~7,逢八进一十六进制:(H)有16个基数:0~~9,A,B,C,D,E,F,逢十六进一十进制转换为二进制算法除以2取余法:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。#includestdio.h#defineN1000voidmain(){inti,j,n,a[N];printf(pleaseinputanumber:);scanf(%d,&n);for(i=0;iN;i++){if(n==0)break;a[i]=n%2;n=n/2;}for(j=i-1;j=0;j--)printf(%d,a[j]);}二进制转十六进制(四位截取法)算法四位截取法:二进制中的每四位数对应十六进制中的一位数。如此对二进制进行分组,每四位分一组,同时对应着十六进制的一位数字。如下:101011100011其分成三个组对应如下。AD3这样得到的十六进制数为:10143#includestring.hintmain(){chara[20],b[5];inti,result=0,k=1,j=0;printf(Pleaseinputabin:\n);gets(a);for(i=strlen(a)-1;i=0;i--){if(a[i]=='1')result+=1(k-1);if(k==4||i==0){switch(result){case10:b[j++]='A';break;case11:b[j++]='B';break;case12:b[j++]='C';break;case13:b[j++]='D';break;case14:b[j++]='E';break;case15:b[j++]='F';break;default:b[j++]=result+'0';break;}result=0;k=0;}k++;}b[j]='\0';printf(Theanseweris:\n);for(i=strlen(b)-1;i=0;i--)printf(%c,b[i]);printf(\n);return0;}十六进制转二进制算法十六进制向二进制进行转换,其实就是四位截取法的逆向过程,只要将每一位十六进制数用四位相应的二进制数表示,即可完成转换。例如:A94——101010010100C357——1100001101010111二进制转十进制(四位截取法)二进制转十进制的四位截取算法:就是二进制的四位对于十进制的一位,具体的对应关系。如下:例如:二进制十进制10010011001011241211MATLAB中进制转换二进制转十进制:bin2dec(A)二进制转十六进制:bin2hex(A)十进制转二进制:dec2bin(A)十六进制转二进制:hex2bin(A)任意进制的转换:base2dec(‘A’,B)A为数据矩阵,B为进制数