十进制转化为二进制_八进制_十六进制代码
- 格式:docx
- 大小:17.83 KB
- 文档页数:5
十进制如何换算二进制、八进制、十六进制?你以十进制的数除以你所要转换的进制数,把每次除得的余数记在旁边,所得的商数继续除以进制数,直到余数为0时止.例如你要把100转换成八进制:100/8=12...(余数为4);12/8=1.....(余数为4);1/8=0......(余数为1);然后把相应的余数从低向高顺着写出来,如上的为144,此即为100的八进制表示形式.十进制转换为十六进制与二进制与前面的转化为八进制相同,如100转换为十六进制:100/16=6....(余数为4);6/16=0......(余数为6);则以十六进制表示的100形式为64;100转换为二进制:100/2=50....(余数为0);50/2=25.....(余数为0);25/2=12.....(余数为1);12/2=6......(余数为0);6/2=3.......(余数为0);3/2=1.......(余数为1);1/2=0.......(余数为1);所以100的二进制表示形式为1100100;十六进制,二进制与八进制之间的转换可以通过补位来实现如:二进制1100100可化为(001)(100)(100)=八进制144=二进制(0110)(0100)=十六进制64;即以二进制数分成3位一组(八进制)或四位一组(十六进制),不够位数的时候在二进制数前补0.进制与进制之间的转换先来了解几个概念:进制,基数,权值. 10进制:有0~9十个数字,逢十进一8进制:有0~7八个数字,逢八进一2进制:有0,1两个数字,逢二进一16进制:有0~9,A,B,C,D,E,F十六个数字,逢十六进一--------------------------------------------------------------------------------逢n进一的n就是基数,基数为几就有几个数字,如二进制基数为二,则有0,1两个;八进制基数为八有0,1,2,3,4,5,6,7八个。
二进制八进制十进制十六进制之间的转换方法二进制、八进制、十进制和十六进制是计算机中常用的数制表示方法。
在进行转换时,可以利用其数制规则和特点来进行相互转换。
以下将详细介绍二进制、八进制、十进制和十六进制之间的转换方法。
1.二进制转八进制:二进制数是由0和1组成的数,八进制数是由0-7组成的数。
每3位二进制数可以转换为1位的八进制数,所以将二进制数从右到左以3位一组进行分组,并用八进制数表示每组即可。
2.二进制转十进制:二进制数转换为十进制数的方法是将二进制数分别乘以2的n次方,并将结果相加,其中n从0开始递增,对应于从右到左的二进制位数。
3.二进制转十六进制:二进制数转换为十六进制数的方法是将二进制数分组为4位一组,然后将每组转换为十六进制数。
4.八进制转二进制:八进制数转换为二进制数的方法是将八进制数的每位转换为对应的3位二进制数。
例如:将八进制数326转换为二进制数,可以将其每位转换为对应的3位二进制数,得到结果:011010110。
5.八进制转十进制:八进制数转换为十进制数的方法是将八进制数分别乘以8的n次方,并将结果相加,其中n从0开始递增,对应于从右到左的八进制位数。
例如:将八进制数326转换为十进制数,可以分别计算3*8^2+2*8^1+6*8^0,得到结果:2066.八进制转十六进制:将八进制数转换为十六进制数,首先将八进制数转换为二进制数,然后将二进制数转换为十六进制数。
例如:将八进制数326转换为十六进制数,可以先将其转换为二进制数011010110,然后将二进制数转换为十六进制数,得到结果:D67.十进制转二进制:将十进制数转换为二进制数的方法是将十进制数不断除以2,然后将余数逆序排列,最后将得到的余数连接在一起。
8.十进制转八进制:将十进制数转换为八进制数的方法是将十进制数不断除以8,然后将余数逆序排列,最后将得到的余数连接在一起。
例如:将十进制数214转换为八进制数,可以依次计算214/8=26余6,26/8=3余2,3/8=0余3、最后将得到的余数逆序排列,得到结果:3269.十进制转十六进制:将十进制数转换为十六进制数的方法是将十进制数不断除以16,然后将余数逆序排列,对于10~15的余数,分别用A~F表示,最后将得到的余数连接在一起。
二进制八进制十进制十六进制之间的转换算法二进制、八进制、十进制和十六进制是计算机中常用的数字系统。
它们之间的转换可以通过一些简单的算法实现。
下面我将分别介绍二进制到八进制、十进制和十六进制的转换算法,八进制到二进制、十进制和十六进制的转换算法,十进制到二进制、八进制和十六进制的转换算法,以及十六进制到二进制、八进制和十进制的转换算法。
1.二进制转八进制、十进制和十六进制的转换算法:-二进制转八进制:首先将二进制数按照从右向左每三位分组,不足三位的在左边补零,然后将每组转换为对应的八进制数即可。
(1)将二进制数按照从右向左每三位分组得到001011,不足三位的在左边补零;-二进制转十进制:二进制数的每一位乘以2的幂,然后将结果求和即可。
-二进制转十六进制:首先将二进制数按照从右向左每四位分组,不足四位的在左边补零,然后将每组转换为对应的十六进制数即可。
(1)将二进制数按照从右向左每四位分组得到00010110,不足四位的在左边补零;2.八进制转二进制、十进制和十六进制的转换算法:-八进制转二进制:将八进制数的每一位转换为对应的三位二进制数即可。
例如,将八进制数13转换为二进制数:-八进制转十进制:将八进制数的每一位乘以8的幂,然后将结果求和即可。
例如,将八进制数13转换为十进制数:1×8^1+3×8^0=11,所以13的十进制表示为11-八进制转十六进制:首先将八进制数转换为二进制数,然后将二进制数按照从右向左每四位分组,不足四位的在左边补零,最后将每组转换为对应的十六进制数即可。
例如,将八进制数13转换为十六进制数:(2)将二进制数按照从右向左每四位分组得到00000101,不足四位的在左边补零;(3)将每组转换为对应的十六进制数得到05,所以13的十六进制表示为053.十进制转二进制、八进制和十六进制的转换算法:-十进制转二进制:将十进制数不断除以2,直到商为0,将每一步的余数从最后一步开始依次排列即可。
⼀篇教程教你学会Python进制转换(⼗进制转⼆进制、⼋进制、⼗六进制)⼀、导⾔导语:在计算机进⾏数据交换时,常常会有⼀个进制转换的过程,我们知道计算机只认0 和 1.在内存系统中,基本基于⼆进制进⾏运算的,但是有时候数据过于庞⼤,为了⽅便存储管理,计算机会使⽤⼗六进制存储数据,但是怎么实现数据转换呢?我们⼈类由⼗根⼿指头,所以⾃然就使⽤⼗进制啦,每当我们数数字到10之后,于是就重0 开始继续数,所以逢⼗进⼀就这么来了。
对于其它进制呢,也是同样的,⽐如最常见的⼆进制,也就是逢⼆进⼀,慢慢来,依次类推,所以数学的世界是多么的奇妙呀!今天给⼤家带来的是使⽤ Python 实现进制转换,内容包括如下:dec(⼗进制)—> bin(⼆进制)dec(⼗进制)—> oct(⼋进制)dec(⼗进制)—> hex(⼗六进制)⼆、各种进制介绍在转换之前,我们先了解以下各种进制⼗进制(Decimal)我们所熟知的⼗进制,其实是从 0 开始,数到 9 之后,就跳到 10,这样就变成了 10,数数⼤家总会把⼆进制(Binary)⼆进制同理,从 0 开始也就是 00(前⾯的⼀个0可以省去,但是为了更好的描述,所以保留),到 01,也变成了 10【对应⼗进制中的 3】,然后是 11【对应⼗进制中的 4】,100【⼗进制中的5】。
以此类推因为⼆进制的英⽂单词是 binary,所以在计算机运算的过程中,使⽤⼆进制会⽤如下⽅法,0b11(4),0b1101(13)等等⼋进制(Octal)理解了⼆进制,在理解⼋进制就很容易了,⼋进制是逢⼋进⼀,范围是 0~7,对⽐⼀下⼆进制,就很好理解啦!!⼗六进制(Hexadecimal)⼗六进制就可能会相对复杂⼀点点,⼗六进制是⽤数字 0~9 和英⽂字母 A - F(⼤⼩写随意) 表⽰,因此 A代表 10, F代表15。
为什么在计算机领域中,⼗六进制⽤途会如此⼴泛呢?给⼤家看⼀个对⽐:当数据⽐较⼤的时候,⼆进制显然不再那么使⽤,再看使⽤⼗六进制,就简短很多。
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace _2_or_10{class Program{staticvoid Main(string[] args){Console.Write("请?输º?入¨?您¨²要©a写¡ä入¨?的Ì?进?制?数ºy:êo");int value2_or_10 = Convert.ToInt16(Console.ReadLine());Console.Write("请?输º?入¨?数ºy据Y:êo");string Value = Convert.ToString(Console.ReadLine());Class_Out _out=new Class_Out(value2_or_10,Value);_out.To_10();}}}class类using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace _2_or_10{class Class_Out{publicint value2_or_10 { get; set; }publicstring Value { get; set; }publicstring _Ten;public Class_Out(int A, string B) { this.value2_or_10 = A; this.Value = B; }publicvoid To_10(){switch (value2_or_10){case 2:Console.WriteLine("转Áa化¡¥为a十º?进?制?为a:êo" + _2_To_10().ToString());Console.WriteLine("转Áa化¡¥为a八ã?进?制?为a:êo" +_10_To_8().ToString());Console.WriteLine("转Áa化¡¥为a十º?六¢¨´进?制?为a:êo" + _10_To_16().ToString()); break;case 8:Console.WriteLine("转Áa化¡¥为a十º?进?制?为a:êo" + _8_To_10().ToString());Console.WriteLine("转Áa化¡¥为a二t进?制?为a:êo" +_10_To_2().ToString());Console.WriteLine("转Áa化¡¥为a十º?六¢¨´进?制?为a:êo" + _10_To_16().ToString()); break;case 16:Console.WriteLine("转Áa化¡¥为a十º?进?制?为a:êo" + _16_To_10().ToString()); Console.WriteLine("转Áa化¡¥为a二t进?制?为a:êo" + _10_To_2().ToString());Console.WriteLine("转Áa化¡¥为a八ã?进?制?为a:êo" + _10_To_8().ToString());break;case 10:_Ten = Value;Console.WriteLine("转Áa化¡¥为a二t进?制?为a:êo" +_10_To_2().ToString());Console.WriteLine("转Áa化¡¥为a八ã?进?制?为a:êo" +_10_To_8().ToString());Console.WriteLine("转Áa化¡¥为a十º?六¢¨´进?制?为a:êo" + _10_To_16().ToString()); break;default:Console.WriteLine("输º?入¨?的Ì?进?制?无T法¤¡§识º?别Àe!ê?!ê?!ê?");break;}}///<summary>///其?他?进?制?到Ì?10进?制?///返¤¦Ì回?的Ì?结¨¢果?为a10进?制?///</summary>publicint _2_To_10(){char[] s = newchar[Value.Length];for (int WWW = 0; WWW < Value.Length; WWW++){s[WWW] = Value[WWW];}int sumTen = 0;for (int e = 0; e < Value.Length; e++)//e为a位?数ºy{sumTen += (Convert.ToInt32(s[e]) - 48) * (Convert.ToInt32(Math.Pow(2, Value.Length -1 - e)));//-1}_Ten = Convert.ToString(sumTen);return sumTen;}publicint _8_To_10(){char[] s = newchar[Value.Length ];for (int WWW = 0; WWW < Value.Length; WWW++){s[WWW] = Value[WWW];}int sumTen = 0;for (int e = 0; e < Value.Length; e++){sumTen += (Convert.ToInt32(s[e]) - 48) * (Convert.ToInt32(Math.Pow(8, Value.Length - 1 - e)));}_Ten = Convert.ToString(sumTen);return sumTen;}publicint _16_To_10(){int sumTen = 0;char[] s = newchar[Value.Length];int[] s_int = newint[Value.Length];for (int WWW = 0; WWW < Value.Length; WWW++){s[WWW] = Value[WWW];}for (int e = 0; e < Value.Length; e++){switch (s[e]){case'a':s_int[e] = 10;break;case'b':s_int[e] = 11;break;case'c':s_int[e] = 12;break;case'd':s_int[e] = 13;break;case'e':s_int[e] = 14;break;case'f':s_int[e] = 15;break;}}for (int e = 0; e < Value.Length; e++){sumTen += s_int[e] * (Convert.ToInt32(Math.Pow(16, Value.Length - 1 - e))); }_Ten = Convert.ToString(sumTen);return sumTen;}///<summary>///10进?制?到Ì?其?他?进?制?///</summary>publicstring _10_To_2(){int ten = Convert.ToInt32(_Ten);string sum = "";string temp;if (ten == 1)sum = Convert.ToString(ten);while (ten != 1){temp = "1";if (ten % 2 == 0)temp = "0";ten /= 2;sum = temp + sum;if (ten == 1)sum = Convert.ToString(ten) + sum;}return sum;}publicstring _10_To_8(){int ten = Convert.ToInt32(_Ten);string sum = "";string temp;if(ten > 0 && ten < 8){sum = Convert.ToString(ten);}while(ten>=8){temp = "0";if (ten % 8 != 0)temp = Convert.ToString(ten%8);sum = temp+sum;ten /= 8;if (ten<8)sum = Convert.ToString(ten)+sum; }return sum;}publicstring _10_To_16(){int ten = Convert.ToInt32(Value);string sum = "";string temp;if (ten >= 0 && ten < 16){switch (ten){case 10:temp = "a";break;case 11:temp = "b";break;case 12:temp = "c";break;case 13:temp = "d";break;case 14:temp = "e";break;case 15:temp = "f";break;default:temp = Convert.ToString(ten);break;}return sum = temp;}while (ten >= 16){temp = "";if (ten % 16 != 0){switch (ten % 16){case 10:temp = "a";break;case 11:temp = "b";break;case 12:temp = "c";break;case 13:temp = "d";break;case 14:temp = "e";break;case 15:temp = "f";break;default:temp = Convert.ToString(ten % 16); break;}}sum = temp + sum;ten /= 16;if (ten < 16)sum = Convert.ToString(ten) + sum; }return sum;}}}。
二进制、八进制、十进制、十六进制之间转换一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分①整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
下面举例:例:将十进制的168转换为二进制得出结果将十进制的168转换为二进制,(10101000)2分析:第一步,将168除以2,商84,余数为0。
第二步,将商84除以2,商42余数为0。
第三步,将商42除以2,商21余数为0。
第四步,将商21除以2,商10余数为1。
第五步,将商10除以2,商5余数为0。
第六步,将商5除以2,商2余数为1。
第七步,将商2除以2,商1余数为0。
第八步,将商1除以2,商0余数为1。
第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000(2)小数部分方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。
换句话说就是0舍1入。
读数要从前面的整数读到后面的整数,下面举例:例1:将0.125换算为二进制得出结果:将0.125换算为二进制(0.001)2分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;第四步,读数,从第一位读起,读到最后一位,即为0.001。
例2,将0.45转换为二进制(保留到小数点第四位)大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。
二进制,八进制,十进制,十六进制之间的转换算法一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分①整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
下面举例:例:将十进制的168转换为二进制得出结果将十进制的168转换为二进制,(10101000)2分析:第一步,将168除以2,商84,余数为0。
第二步,将商84除以2,商42余数为0。
第三步,将商42除以2,商21余数为0。
第四步,将商21除以2,商10余数为1。
第五步,将商10除以2,商5余数为0。
第六步,将商5除以2,商2余数为1。
第七步,将商2除以2,商1余数为0。
第八步,将商1除以2,商0余数为1。
第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000(2)小数部分方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。
换句话说就是0舍1入。
读数要从前面的整数读到后面的整数,下面举例:例1:将0.125换算为二进制得出结果:将0.125换算为二进制(0.001)2分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;第四步,读数,从第一位读起,读到最后一位,即为0.001。
例2,将0.45转换为二进制(保留到小数点第四位)大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。
一、二进制转化成其他进制1. 二进制(Binary)——>八进制(Octal)例子1:将二进制数(10010)2转化成八进制数。
(10010)2=(010 010)2=(2 2)8=(22)8例子2:将二进制数(0.1010)2转化为八进制数。
(0.10101)2=(0. 101 010)2=(0. 5 2)8=(0.52)8诀窍:因为每三位二进制数对应一位八进制数,所以,以小数点为界,整数位则将二进制数从右向左每3位一隔开,不足3位的在左边用0填补即可;小数位则将二进制数从左向右每3位一隔开,不足3位的在右边用0填补即可。
2. 二进制(Binary)——>十进制(Decimal)例子1:将二进制数(10010)2转化成十进制数。
(10010)2=(1x24+0x23+0x22+1x21+0x20)10=(16+0+0+2+0)10=(18) 10例子2:将二进制数(0.10101)2转化为十进制数。
(0.10101)2=(0+1x2-1+0x2-2+1x2-3+0x2-4+1x2-5)10=(0+0.5+0.25+0.125+0.0625+0.03125)10=(0.96875)10诀窍:以小数点为界,整数位从最后一位(从右向左)开始算,依次列为第0、1、2、3………n,然后将第n位的数(0或1)乘以2的n-1次方,然后相加即可得到整数位的十进制数;小数位则从左向右开始算,依次列为第1、2、3……..n,然后将第n位的数(0或1)乘以2的-n次方,然后相加即可得到小数位的十进制数(按权相加法)。
3. 二进制(Binary)——>十六进制(Hex)例子1:将二进制数(10010)2转化成十六进制数。
(10010)2=(0001 0010)2=(1 2)16=(12) 16例子2:将二进制数(0.1010)2转化为十六进制数。
(0.10101)2=(0. 1010 1000)2=(0. A 8)16=(0.A8)16诀窍:因为每四位二进制数对应一位十六进制数,所以,以小数点为界,整数位则将二进制数从右向左每4位一隔开,不足4位的在左边用0填补即可;小数位则将二进制数从左向右每4位一隔开,不足4位的在右边用0填补即可。
二进制八进制十进制十六进制转换符号口诀在计算机科学和数学领域中,二进制、八进制、十进制和十六进制是常见的数字表示方式。
它们之间的转换是非常重要的基础知识,也是程序员和计算机科学家必备的技能之一。
为了帮助大家更好地理解和记忆这些进制间的转换规则,下面我将共享一些口诀和技巧。
1. 二进制转八进制二八相对应,三位一组往前推。
二进制数按照从右往左每三位一组进行分组,不足三位的高位补零,每组对应一个八进制数,依次写出即为八进制数。
2. 八进制转二进制八二不难变,每位对应三二进。
八进制数每一位转换为对应的三位二进制数即可。
3. 二进制转十进制二进制转十进制,权次为从右到左。
按照权值展开式计算,将二进制数每一位乘以对应的权值然后相加即可得到十进制数。
4. 十进制转二进制十二不尽,倒着写恰当。
使用除以2取余法,可以将十进制数转换成二进制数。
5. 二进制转十六进制二十不迷路,四位对应一。
将二进制数每四位一组,不足四位的高位补零,然后根据十六进制数的映射关系进行转换。
6. 十六进制转二进制十六转二,恰恰好。
十六进制数转换成二进制数在显示器上进行比较方便,可以将每一位直接对应成四位二进制数即可。
总结:以上口诀和技巧是帮助我们更好地记忆和理解二进制、八进制、十进制和十六进制间的转换规则的方法。
通过这些口诀和技巧,我们可以更加灵活地进行进制间的转换,并且在实际的编程和计算中能够更加熟练地运用这些知识。
个人观点:掌握进制转换是计算机领域中非常基础且重要的知识,它不仅能够帮助我们更好地理解计算机底层的运行原理,还能够在实际的编程和运算中起到关键的作用。
我认为我们应该重视并且深入理解这一知识点,通过反复练习和使用,逐渐掌握这些转换规则,从而为计算机科学和编程领域的深入学习打下坚实的基础。
希望以上内容对你有所帮助,如有任何问题或不清楚的地方,欢迎随时交流讨论。
进制转换口诀和技巧是帮助我们更好地理解和记忆二进制、八进制、十进制和十六进制之间转换规则的重要方法。
1、有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数。
个位,N=1;十位,N=2...举例:110B=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6D110Q=1*8的2次方+1*8的1次方+0*8的0次方=64+8+0=72D110H=1*16的2次方+1*16的1次方+0*16的0次方=256+16+0=272D2、十进制数转二进制数、八进制数、十六进制数方法是相同的,即整数部分用除基取余的算法,小数部分用乘基取整的方法,然后将整数与小数部分拼接成一个数作为转换的最后结果。
3、二进制数转换成其它数据类型3-1二进制转八进制:从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用0补足,就是一个相应八进制数的表示。
010110.001100B=26.14Q八进制转二进制反之则可。
3-2二进制转十进制:见13-3二进制转十六进制:从小数点位置开始,整数部分向左,小数部分向右,每四位二进制为一组用一位十六进制的数字来表示,不足四位的用0补足,就是一个相应十六进制数的表示。
00100110.00010100B=26.14H十进制转各进制要将十进制转为各进制的方式,只需除以各进制的权值,取得其余数,第一次的余数当个位数,第二次余数当十位数,其余依此类推,直到被除数小于权值,最后的被除数当最高位数。
一、十进制转二进制如:55转为二进制2|5527――1 个位13――1 第二位6――1 第三位3――0 第四位1――1 第五位最后被除数1为第七位,即得110111二、十进制转八进制如:5621转为八进制8|5621702 ―― 5 第一位(个位)87 ―― 6 第二位10 ―― 7 第三位1 ――2 第四位最后得八进制数:127658三、十进制数十六进制如:76521转为十六进制16|765214726 ――5 第一位(个位)295 ――6 第二位18 ――6 第三位1 ――2 第四位最后得1276516二进制与十六进制的关系2进制0000 0001 0010 0011 0100 0101 0110 011116进制0 1 2 3 4 5 6 72进制1000 1001 1010 1011 1100 1101 1110 111116进制8 9 a(10) b(11) c(12) d(13) e(14) f(15)可以用四位数的二进制数来代表一个16进制,如3A16 转为二进制为:3为0011,A 为1010,合并起来为00111010。
姓名:罗冬专业:10信计1班学号:3110008288题目:转化为其他进制十进制using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace _2_or_10{class Program{static void Main(string[] args){Console.Write("请?输º?入¨?您¨²要°a写¡ä入¨?的Ì?进?制?数ºy:êo");int value2_or_10 = Convert.ToInt16(Console.ReadLine());Console.Write("请?输º?入¨?数ºy据Y:êo");string Value = Convert.ToString(Console.ReadLine());Class_Out _out=new Class_Out(value2_or_10,Value);_out.To_10();}}}class类using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace _2_or_10{class Class_Out{public int value2_or_10 { get; set; }public string Value { get; set; }public string _Ten;public Class_Out(int A, string B) { this.value2_or_10 = A; this.Value = B; }public void To_10(){switch (value2_or_10){case 2:Console.WriteLine("转Áa化¡¥为a十º?进?制?为a:êo" + _2_To_10().ToString());Console.WriteLine("转Áa化¡¥为a八ã?进?制?为a:êo" +_10_To_8().ToString());Console.WriteLine("转Áa化¡¥为a十º?六¢¨´进?制?为a:êo" +_10_To_16().ToString());break;case 8:Console.WriteLine("转Áa化¡¥为a十º?进?制?为a:êo" + _8_To_10().ToString());Console.WriteLine("转Áa化¡¥为a二t进?制?为a:êo" +_10_To_2().ToString());Console.WriteLine("转Áa化¡¥为a十º?六¢¨´进?制?为a:êo" +_10_To_16().ToString());break;case 16:Console.WriteLine("转Áa化¡¥为a十º?进?制?为a:êo" + _16_To_10().ToString());Console.WriteLine("转Áa化¡¥为a二t进?制?为a:êo" + _10_To_2().ToString());Console.WriteLine("转Áa化¡¥为a八ã?进?制?为a:êo" + _10_To_8().ToString());break;case 10:_Ten = Value;Console.WriteLine("转Áa化¡¥为a二t进?制?为a:êo" +_10_To_2().ToString());Console.WriteLine("转Áa化¡¥为a八ã?进?制?为a:êo" +_10_To_8().ToString());Console.WriteLine("转Áa化¡¥为a十º?六¢¨´进?制?为a:êo" +_10_To_16().ToString());break;default:Console.WriteLine("输º?入¨?的Ì?进?制?无T法¤¡§识º?别Àe!ê?!ê?!ê?");break;}}/// <summary>/// 其?他?进?制?到Ì?10进?制?/// 返¤¦Ì回?的Ì?结¨¢果?为a10进?制?/// </summary>public int _2_To_10(){char[] s = new char[Value.Length];for (int WWW = 0; WWW < Value.Length; WWW++){s[WWW] = Value[WWW];}int sumTen = 0;for (int e = 0; e < Value.Length; e++)//e为a位?数ºy{sumTen += (Convert.ToInt32(s[e]) - 48) * (Convert.ToInt32(Math.Pow(2, Value.Length -1 - e)));//-1}_Ten = Convert.ToString(sumTen);return sumTen;}public int _8_To_10(){char[] s = new char[Value.Length ];for (int WWW = 0; WWW < Value.Length; WWW++){s[WWW] = Value[WWW];}int sumTen = 0;for (int e = 0; e < Value.Length; e++)sumTen += (Convert.ToInt32(s[e]) - 48) * (Convert.ToInt32(Math.Pow(8, Value.Length - 1 - e)));}_Ten = Convert.ToString(sumTen);return sumTen;}public int _16_To_10(){int sumTen = 0;char[] s = new char[Value.Length];int[] s_int = new int[Value.Length];for (int WWW = 0; WWW < Value.Length; WWW++){s[WWW] = Value[WWW];}for (int e = 0; e < Value.Length; e++){switch (s[e]){case 'a':s_int[e] = 10;break;case 'b':s_int[e] = 11;break;case 'c':s_int[e] = 12;break;case 'd':s_int[e] = 13;break;case 'e':s_int[e] = 14;break;case 'f':s_int[e] = 15;break;}}for (int e = 0; e < Value.Length; e++){sumTen += s_int[e] * (Convert.ToInt32(Math.Pow(16, Value.Length - 1 - e)));}_Ten = Convert.ToString(sumTen);return sumTen;}/// <summary>///10进?制?到Ì?其?他?进?制?/// </summary>public string _10_To_2(){int ten = Convert.ToInt32(_Ten);string sum = "";string temp;if (ten == 1)sum = Convert.ToString(ten);while (ten != 1)temp = "1";if (ten % 2 == 0)temp = "0";ten /= 2;sum = temp + sum;if (ten == 1)sum = Convert.ToString(ten) + sum;}return sum;}public string _10_To_8(){int ten = Convert.ToInt32(_Ten);string sum = "";string temp;if(ten > 0 && ten < 8){sum = Convert.ToString(ten);}while(ten>=8){temp = "0";if (ten % 8 != 0)temp = Convert.ToString(ten%8);sum = temp+sum;ten /= 8;if (ten<8)sum = Convert.ToString(ten)+sum;}return sum;}public string _10_To_16(){int ten = Convert.ToInt32(Value);string sum = "";string temp;if (ten >= 0 && ten < 16){switch (ten){case 10:temp = "a";break;case 11:temp = "b";break;case 12:temp = "c";break;case 13:temp = "d";break;case 14:temp = "e";break;case 15:temp = "f";break;default:temp = Convert.ToString(ten);break;}return sum = temp;}while (ten >= 16){temp = "";if (ten % 16 != 0){switch (ten % 16){case 10:temp = "a";break;case 11:temp = "b";break;case 12:temp = "c";break;case 13:temp = "d";break;case 14:temp = "e";break;case 15:temp = "f";break;default:temp = Convert.ToString(ten % 16);break;}}sum = temp + sum;ten /= 16;if (ten < 16)sum = Convert.ToString(ten) + sum;}return sum;}}}。