C#编程入门_进制转换_2

来源:互联网 发布:mac usb安装win7 编辑:程序博客网 时间:2024/06/08 20:07

21篇C#博客的配套源码

进制数可以分为二进制、八进制、十进制和十六进制,不同的进制并不影响数据本身,因此数据可以在不同进制之间转换。在我们现实的生活中都是采用的十进制,就是满10进1。对于二进制、八进制、十六进制,无非就是满2进1,满8进1,满16进1.


二进制

十进制转化二进制

这里写图片描述
三次除以2计算得到余数依次是0、1、1,将所有余数倒序排列是1、1、0。所以十进制的6转换成二进制数,结果是110。

二进制转十进制

二进制转化成十进制要从右到左用二进制位上的每个数去乘以2的相应次方,例如将最右边第一位的数乘以2的0次方,第二位的数乘以2的1次方,第n位的数乘以2的n-1次方,然后把所有乘的结果相加,得到的结果就是转换后的十进制数。
如把一个二进制数01100100转换为10进制,转换方式如下。
0 * 2+ 0 * 21+ 1 * 22+ 0 * 23+ 0 * 24+ 1 * 25+ 1 * 26+ 0 * 27= 100
由于0乘以多少都是0,所以上述表达式也可以简写为如下方式。
1 * 22+ 1 * 25+ 1 * 26= 100
得到的结果100就是二进制数01100100转化后的十进制数。


八进制

这里写图片描述
1.二进制转八进制
二进制转八进制时,首先需要将二进制数自右向左每三位分成一段,然后将二进制的每段的三位数转为八进制的一位,转换过程中数值的对应关系如表所示。

了解了二进制转八进制的规则,接下来详细讲解如何将一个二进制数100101010转为八进制数,具体步骤如下。
(1)每三位分成一段,结果为100 101 010。
(2)将每段的数值分别查表替换,结果如下。
100→4
101→5
010→2
(3)将替换的结果进行组合,转换的结果为0452(注意八进制必须以0开头)。


十六进制

这里写图片描述
将二进制转十六进制时,与转八进制类似,不同的是要将二进制数每四位分成一段,查表转换即可。二进制转十六进制过程中数值的对应关系如表所示。
了解了二进制转十六进制的规则,接下来通过一个例子来学习一下。假设要将一个二进制数101001010110转为十六进制数,具体步骤如下。
(1) 每四位分成一段,结果为101001010110。
(2) 将每段的数值分别查表替换,结果如下。
1010→A
0101→5
0110→6
(3) 将替换的结果进行组合,转换的结果为 0xA56 或 0XA56(注意十六进制必须以 0x 或者0X开头)。


代码实现进制间的转化

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 进制转化{    class Program    {        static void Main(string[] args)        {            //将十进制数转化成二进制的数            //把96转化成2进制的数            //Convert.ToString(96, 2);  运算后的结果是一个字符串            string ret = Convert.ToString(96,2);            Console.WriteLine(ret);            //将二进制数转化成十进制            //第一个参数是表示转化的数是二进制的字符串  第二个参数 告诉编辑器 前面的字符串是一个二进制的数            //转化过后的结果是一个int 类型的数              int retNum = Convert.ToInt32("1100000",2);            Console.WriteLine(retNum);            //将96转化成8进制的数  结果是一个字符串类型的            ret = Convert.ToString(96,8);            Console.WriteLine(ret);            // 将八进制转化成十进制            retNum = Convert.ToInt32("140",8);            Console.WriteLine(retNum);            //将10进制转化成16进制             ret = Convert.ToString(96,16);            Console.WriteLine(ret);            //将16进制的数转化成10进制的数            retNum = Convert.ToInt32("60",16);            Console.WriteLine(retNum);            //将二进制转化成八进制            retNum = Convert.ToInt32("1100000",2);            ret = Convert.ToString(retNum,8);            Console.WriteLine(ret);            //总结:            /*             * 从十进制转化成其他进制的时候我们使用Convert.ToString(十进制数,要转化的进制);             *              * 从其他进制转化成十进制的时候我们使用Convert.ToInt32(其他进制形式的字符串,其他进制数);             *              * 如果是非十进制之间进行转化 那么要使用  Convert.ToString(十进制数,要转化的进制); 和Convert.ToInt32(其他进制形式的字符串,其他进制数); 进行结合使用,换句话说:比如讲二进制转化成八进制  我们先把二进制转化成十进制 然后再把十进制转化成八进制  二进制转化成十六进制  十六进制转化成二进制  八进制转十六进制  十六进制转八进制 同理             */        }    }}
原创粉丝点击