首页 > 代码库 > 10-08C#基础--进制转换
10-08C#基础--进制转换
(一)、数制 计算机中采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径、节省设备等优点,为了便于描述,又常用八、十六进制作为二进制的缩写。
一般计数都采用进位计数,其特点是: (1)逢N进一,N是每种进位计数制表示一位数所需要的符号数目为基数。 (2)采用位置表示法,处在不同位置的数字所代表的值不同,而在固定位置上单位数字表示的值是确定的,这个固定位上的值称为权。 在计算机中:D7 D6 D5 D4 D3 D2 D1 D0 只有两种0和1 8 4 2 1 二)、数制转换 不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别相等的原则进行的。也就是说,若转换前两数相等,转换后仍必须相等。 十进制:有10个基数:0 ,1,2,3,4,5,6,7,8, 9 逢十进一 二进制:有2 个基数:0 ,1 逢二进一 八进制:有8个基数:0 ,1,2,3,4,5,6, 7 逢八进一 十六进制:有16个基数:0 ~~ 9,A,B,C,D,E,F (A=10,B=11,C=12,D=13,E=14,F=15) ,逢十六进一
1、数的进位记数法 N=a n-1*p n-1+a n-2*p n-2+…+a2*p2+a1*p1+a0*p0】
2、十进制与(二、八、十六)进制数之间的转换
(1)十进制转换成二进制:十进制转二进制通常采用除2取余法,十进制数逐次整除2,直至商为0,所得余数按相反顺序写出,即为二进制数。
在十进制与二进制的转换时,采用8421法则。
8 7 6 5 4 3 2 1
128 64 32 16 8 4 2 1
例:(36)10转换为二进制
2 | 36....0
2 | 18....0
2 | 9....1
2 | 4....0
2 | 2....0
1
所以(36)10即为(100100)2。
同样,十进制转化为八、十六进制
例1:(129)10转换为八进制
8 | 129....1
8 | 16....0
2
所以(129)10即为(201)8。
例2:(179)10转换为十六进制
16| 179...3
11
在十六进制中,11必须写为B,所以(179)10即为(B3)16。
(2)其他进制数p转换为十进制
二进制转换为十进制:采用a*p0+b*p1+c*p2+......n*pn-1
例:(1011001)2转换为十进制
1*20+0*21+0*22+1*23+1*24+0*25+1*26=89
同样,八、十六进制转换为十进制
例1:(1213210)8
=0*80+1*81 +2*82 +3*83 +1*84 +2*85 +1*86
=(333448)10
例2:(1BC2)16
=2*160 +C*161 +B*162 +1*163
=2*160+12*161 +11*162 +1*163
=(1119)10
(3)其他进制之间的转换
二进制转换为八进制:对于整数,采用从右到左每三位一组,不够三位的在其左边补齐0,每组单独转换出来,即为八进制数。
例:(001 101 111 011)2
1 5 7 3
所以,(1573)8即为所得的八进制数。
八进制转换为二进制:将每位八进制由三位二进制数代替,即可完成转换。
例:(1 7 3 5 )8
001 111 011 101
所以,(1111011101)2即为所得的二进制数。
二进制转换为十六进制:由于2的4次方=16,所以依照二进制与八进制的转换方法,将二进制数的每四位用一个十六进制数码来表示,整数部分以小数点为界点从右往左每四位一组转换,小数部分从小数点开始自左向右每四位一组进行转换。
例:(1001 0111 0111 1001)2
9 7 7 9
所以,(9779)16为所得的十六进制数
十六进制转换为二进制:只要将每一位十六进制数用四位相应的二进制数表示,即可完成转换。 例:( 8 7 6 5)16
1000 0111 0110 0101
所以,(1000 0111 0110 0101)2为所得的二进制数。
10-08C#基础--进制转换