C# 进制转换的实现(二进制、十六进制、十进制互转)

来源:脚本之家  责任编辑:小易  

由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示 例如: 二进制: 101

由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示

// 十进制转二进制递归算法 static void DecimalToBinary(int num

例如: 二进制: 1010 表示为 字符串:"1010" 

//十进制转二进制Console.WriteLine("十进制166的二进制表示: &

int d = 10;

public void ShowNumber(){ Console.WriteLine(&qu

//十进制转二进制字符串 Console.WriteLine(Convert.ToString(d,2)); //输出: 1010 //十进制转十六进制字符串 Console.WriteLine(Convert.ToString(d,16)); //输出: a //二进制字符串转十进制数 string bin = "1010"; Console.WriteLine(Convert.ToInt32(bin,2)); //输出: 10 //二进制字符串转十六进制数 string bin = "1010"; Console.WriteLine(string.Format("{0:x}",Convert.ToInt32(bin,2)); //输出: a //十六进制转二进制字符串 Console.WriteLine(Convert.ToString(0xa,2)); //输出: 1010 //十六进制转十进制数 Console.WriteLine(Convert.ToString(0xa,10)); //输出: 10

十进制数转换为十六进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转

C#实现转换十六进制

剖腹产的经历,不知道有多少人有我这么多次啊?我是有了三次,是的,三次,不骗人,的的确确三次。第一次是因为孩子过了预产期没有按期出生,第二次是因为据说第一次剖腹产了,第二次还是剖腹产更好一些,而第三次,就完全是不能选择的剖腹产了。都是在一个位置做的手术,可能是我皮厚,比较幸运的是肚子上都没有留下妊娠纹,几年过去,肚皮上没有只有很小很细很浅的一道疤痕。现在重点说一下我第一次剖腹产的经历。因为接下来的两次感受都差不多。第一次剖腹产,主因是宝贝过了预产期好几天了都还没有一点要出生的样子,最后一次例行产检去看妇产科医生,他跟我说,如果你在这天还没有生孩子,你就要到医院,我们用其他方法让孩子出生。儿子没有

C#语言有很多值得学习的地方,这里我们主要介绍C#实现转换十六进制,包括介绍用来表示十六进制的枚举值是 HexNumber等方面。

近几年,“花钱”收藏的市场价格一路攀升,各种题材都不断创出新高。到底哪些因素决定“花钱”的经济价值呢?李彦君认为,“花钱”年代越久远的价值越大,因为它不是流通货币,发行量相对很小,年代越久远的存世量越少;另外,铸造冶金工艺水平、书法篆刻越精湛的自然价值就高;具有重大民俗、天文、宗教等科研价值的“花钱”要比普通的略高一筹;还有从题材总体来看,宫钱类的比民间的普通“花钱”价值要大。八卦钱主要用于镇宅院、保平安、祛病邪、巫术占卜等。据说八卦钱在清朝道光年间兴盛,用于修建殿堂时放置梁上,辟妖邪、祈福祥。自道光至清朝灭亡,民间人们为避兵乱、镇妖害,在建房时上梁时,也放置八卦钱。清王朝灭亡之后,主要用于巫

任何数据在计算机内部都是以二进制保存的,所以进制与数据的存储无关,只与输入输出有关。所以,对于进制转换,我们只关心字符串中的结果。

今天把“广场舞老人在篮球场围殴篮球青年”的新闻改编成时事热点型材料作文给高三学生练习审题立意。很多学生的第一反应是“素质”。的确,这起事件很能一斑窥豹地反映改革开放三十年来,国人在素质方面的进步和不足。学生们一致认为广场舞老人不守规矩还动手打人,素质低下;年轻人不卑不亢、克制礼让,素质较高。他们给出的理由是:1、篮球场不同于广场,是有专属功能的,是专门为打篮球的人建造的。如果没人打篮球,那么老人来跳舞可以接受;反之就应该优先满足打篮球的人的需求。2、年轻人先到已经在打,老年人后到却招呼也不打就占场地,不遵守先到先得的江湖规矩。3、老年人动手,年轻人没动手。4、公园给广场舞老人安排了场地,但他们

在上面的第 4 条中提到了 ToString() 方法可以将数值转换成字符串,不过在字符串中,结果是以十进制显示的。现在我们带给它加一些参数,就可以让C#实现转换成十六进制——使用 ToString(string) 方法。

其实这个话题被争议很久了,首先声明一点,我不吃狗肉,也不想知道狗肉是什么滋味,但是我反对禁止他人吃狗肉。这是对他人的道德绑架。吃狗肉的历史其实已经很久了,在很长一段时间内狗肉是一种上等的食材,后来才慢慢的没落的。至今很多国家都有食用狗肉的传统,香港可能是唯一一个城市立法禁止食用狗肉的,以韩国为例,每年可能狗肉的食用量在两千吨左右,几乎所有的韩国人都吃过狗肉。有的时候怎么说呢?很多爱狗人士是很自私的,他们所打出的各种口号,狗是人类的朋友,狗狗多么聪明可爱,其实归根到底是情感差异化的对待。基于一种主观的认识,对于保护动物或者爱护自然并没有太多作用。关于这个话题不想说太多,之前写了一篇文章,可惜头条

这里需要一个 string 类型的参数,这就是格式说明符。十六进制的格式说明符是 "x" 或者 "X",使用这两种格式说明符的区别主要在于 A-F 六个数字:"x" 代表 a-f 使用小写字母表示,而 "X" 而表示 A-F 使用大字字母表示。如下例:

private void TestHex() { int a = 188; thistextBoxText = ""; thistextBoxAppendText("a(10) = " + aToString() + "\n"); thistextBoxAppendText("a(16) = " + aToString("x") + "\n"); thistextBoxAppendText("a(16) = " + aToString("X") + "\n"); }

运行结果如下:

a(10) = 188  

a(16) = bc  

a(16) = BC 

这时候,我们可能有另一种需求,即为了显示结果的整齐,我们需要控制十六进制表示的长度,如果长度不够,用前导的 0 填补。解决这个问题,我们只需要在格式说明符“x”或者“X”后写上表示长度的数字就行了。比如,要限制在 4 个字符的长度,可以写成“X4”。在上例中追加一句:

this.textBox1.AppendText("a(16) = " + a.ToString("X4") + "\n");

其结果将输出 a(16) = 00BC。

现在,我们还要说一说如何将一个表示十六进制数的字符串转换成整型。这一转换,同样需要借助于 Parse() 方法。这里,我需要 Parse(string, System.Globalization.NumberStyles) 方法。第一个参数是表示十六进制数的字符串,如“AB”、“20”(表示十进制的 32) 等。第二个参数 System.Globalization.NumberStyles 是一个枚举类型,用来表示十六进制的枚举值是 HexNumber。因此,如果我们要将“AB”转换成整型,就应该这样写:int b = int.Parse("AB", System.Globalization.NumberStyles.HexNumber),最后得到的 b 的值是 171。   

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

C#十进制 转换成二进制十六进制 八进制 怎么写

非常简单的办法(在main函数中) public static void Main(string[] args)

{

int number = 0;

Console.WriteLine("请输入一个十进制的数字:");

number = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("二进制是:"+Convert.ToString(number,2));

Console.WriteLine("八进制是:" + Convert.ToString(number, 8));

Console.WriteLine("十六进制是:" + Convert.ToString(number, 16));

}

求编写一进制转换器的代码,使其可以实现二进制、十进制以及十六进制之间的相互转换

'在窗体上放1个文本框,TEXT设置为0,四个OptionButton,Caption分别设置为 10、2、16、8进制

Dim Flag As Integer '记录当前文本框数值的进制,可能为:0--十进制;2——二进制;8——八进制;16——十六进制

Private Sub Form_Resize() '垂直渐变窗口

Dim i, j As Long

Const ColorStart = &H0

Const ColorEnd = &HFF

j = ColorStart

Form1.AutoRedraw = True

For i = 1 To Form1.ScaleHeight

Form1.Line (0, i)-(Form1.ScaleWidth, i), j

j = Int(ColorStart + (ColorEnd - ColorStart) / Form1.ScaleHeight * (i - i Mod 300)) * &H1

Next i

End Sub

Private Sub Option1_Click() '第一个OptionButton负责将各种进制转换成十进制

Dim i As Long

Dim Des As Long

Dim Resu As String

Des = 0

Resu = Text1.Text

If Flag = 2 Then

For i = 1 To Len(Text1.Text)

Des = Des + CInt(Right(Resu, 1)) * (2 ^ (i - 1))

Resu = Left(Resu, Len(Resu) - 1)

Next i

ElseIf Flag = 16 Then

For i = 1 To Len(Text1.Text)

Select Case Right(Resu, 1)

Case "A"

Des = Des + 10 * (16 ^ (i - 1))

Case "B"

Des = Des + 11 * (16 ^ (i - 1))

Case "C"

Des = Des + 12 * (16 ^ (i - 1))

Case "D"

Des = Des + 13 * (16 ^ (i - 1))

Case "E"

Des = Des + 14 * (16 ^ (i - 1))

Case "F"

Des = Des + 15 * (16 ^ (i - 1))

Case Else

Des = Des + CInt(Right(Resu, 1)) * (16 ^ (i - 1))

End Select

Resu = Left(Resu, Len(Resu) - 1)

Next i

ElseIf Flag = 8 Then

For i = 1 To Len(Text1.Text)

Des = Des + CInt(Right(Resu, 1)) * (8 ^ (i - 1))

Resu = Left(Resu, Len(Resu) - 1)

Next i

Else

MsgBox "进制转换错误,不存在的进制类型"

End If

Text1.Text = CStr(Des)

Flag = 0

End Sub

Private Sub Option2_Click() '转换为2进制

Dim i, Des As Long

Dim Resu As String

If Flag <> 0 Then Option1_Click '如果不是10进制,先转换成十进制

Resu = ""

Des = CLng(Text1.Text) '10进制转换成2进制

While Des <> 0

Resu = Des Mod 2 & Resu

Des = Int(Des / 2)

Wend

Text1.Text = Resu

Flag = 2

End Sub

Private Sub Option3_Click() '转换为16进制

If Flag <> 0 Then Option1_Click '如果不是10进制,先转换成十进制

Des = CLng(Text1.Text)

While Des <> 0 '10进制转换成16进制

Select Case Des Mod 16

Case 10

Resu = "A" & Resu

Case 11

Resu = "B" & Resu

Case 12

Resu = "C" & Resu

Case 13

Resu = "D" & Resu

Case 14

Resu = "E" & Resu

Case 15

Resu = "F" & Resu

Case Else

Resu = Des Mod 16 & Resu

End Select

Des = Int(Des / 16)

Wend

Text1.Text = Resu

Flag = 16

End Sub

Private Sub Option4_Click() '转换为8进制

Dim i, Des As Long

Dim Resu As String

If Flag <> 0 Then Option1_Click '如果不是10进制,先转换成十进制

Resu = ""

Des = CLng(Text1.Text) '10进制转换成8进制

While Des <> 0

Resu = Des Mod 8 & Resu

Des = Int(Des / 8)

Wend

Text1.Text = Resu

Flag = 8

End Sub

c#怎么将二进制转换为十进制

最简单的是

int i=Convert.ToInt64("1011", 2);

如果你是在学习过程,那么可以自己实现个方法:

private int ConvertTo(string value)

{

int temp = 0;

for (int i = 0; i < value.Length; i++)

{

temp += ((int)Math.Pow(2, i) * Convert.ToInt16(value.Substring(value.Length-i-1,1)));

}

return temp;

}

调用这个方法:int i=ConvertTo("1011");

用C#如何将一个十六进制序列转换成二进制序列

一位16进制数可以转换成四位二进制数,就可以转呗。

一种方法适合这个16进制数比较小,可以这么转

string yuan = "15f";

int si = Convert.ToInt32(yuan, 16);

string er = Convert.ToString(si, 2);

Console.WriteLine(er);输出结果是101011111

还有一种方法就是这是个很长的一串,这样的话就超过比如说超过32位整形的范围,所以不能使用,那么就按我上面说的,一位16进制数可以转换成四位二进制数,对应着转吧。按这种方法转,15f对应的结果是000101011111,结果其实是一样的,只是第2种方法的有面多了几个0。

C# 的double类型的10进制 转化成 字符串的 2进制和16进制的问题

先转换成字节数组,然后再转成2进制和16进制格式的字符串

double x = 3.14d;

// 先转换为字节数组

byte[] bArray = BitConverter.GetBytes(x);

// 再转换为二进制和十六进制字符串

string sBin = string.Empty;

string sHex = string.Empty;

foreach(byte b in bArray)

{

    sBin += Convert.ToString(b, 2);

    sHex += Convert.ToString(b, 16);

}更多追问追答追问比如说lable1、lable2、lable3,lable1是字符串浮点数,先算出lable1的值,然后再将lable1的值转换成2进 赋值给lable2,让lable2输出用了你的方法,得数不对又试了一次,得出来数还是不对,出现很多0和1,得数是10.4,二进制栏出现一大堆0和1。不过不用byte数组,用byte可以得出正确的得数,但是是四舍五入后的,不显示小数点后面的数。是不是Convert.ToString不支持小数点以后的数进行二进制转换?追答// label1是你给出的双精度浮点数

double x = double.Parse(label1.Text);

// 先转换为字节数组

byte[] bArray = BitConverter.GetBytes(x);

 

// 再转换为二进制和十六进制字符串

string sBin = string.Empty;

string sHex = string.Empty;

foreach(byte b in bArray)

{

    sBin += Convert.ToString(b, 2);

    sHex += Convert.ToString(b, 16);

}

//lable2显示二进制格式

lable2.Text = sBin;

//lable2显示十六进制格式

lable3.Text = sHex;追问用了没成功,得数不对,我是用winForms编写计算器程序lable3输出16进,将lable1的值转换成16进 赋值给lable3,让lable3输出不过还是谢谢你。😓

  • 本文相关:
  • c#实现把图片转换成二进制以及把二进制转换成图片的方法示例
  • c# 图片与二进制转换的简单实例
  • checkbox 的全选、取消及跨页保存的实现方法
  • asp.net web api 2实现多文件打包并下载文件的实例
  • asp.net过滤html字符串方法总结
  • asp.net中防止用户多次登录的方法
  • asp.net cookie值中文乱码问题解决方法
  • 总结visual studio下asp.net模板化控件中的数据绑定
  • asp.net 过滤图片标签的正则
  • asp.net core配置文件加载过程的深入了解
  • 使用asp.net创建线程实例教程
  • asp.net获取真正的客户端ip地址的6种方法
  • C#十进制 转换成二进制十六进制 八进制 怎么写
  • 求编写一进制转换器的代码,使其可以实现二进制、十进制以及十六进制之间的相互转换
  • c#怎么将二进制转换为十进制
  • 用C#如何将一个十六进制序列转换成二进制序列
  • C# 的double类型的10进制 转化成 字符串的 2进制和16进制的问题
  • 用C#如何编写程序实现不同进制间的转换
  • c#怎么用递归方法实现十进制和二进制的相互转化?答案越简单越好,初学水平很次
  • C# 读取二进制文件并转成16进制
  • 编写C#程序,要求用户输入一个十进制正整数,然后分别转换成为二进制数,八进制数和十六进制数输出
  • 十进制转十六进制 怎么转?C#
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved