2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > java biginteger 十进制转十六进制_BigInteger转换为十六进制/十进制/八进制/二进制字符串?...

java biginteger 十进制转十六进制_BigInteger转换为十六进制/十进制/八进制/二进制字符串?...

时间:2022-04-22 01:58:07

相关推荐

java biginteger 十进制转十六进制_BigInteger转换为十六进制/十进制/八进制/二进制字符串?...

小编典典

转换BigInteger为十进制,十六进制,二进制,八进制字符串:

让我们从一个BigInteger值开始:

BigInteger bigint = BigInteger.Parse("123456789012345678901234567890");

基地10和基地16

内置的Base 10(十进制)和Base 16(十六进制)覆盖很容易:

// Convert to base 10 (decimal):

string base10 = bigint.ToString();

// Convert to base 16 (hexadecimal):

string base16 = bigint.ToString("X");

前导零(BigInteger正值与负值)

请注意,ToString("X")当的值为BigInteger正时,确保十六进制字符串的前导零。这与ToString("X")从禁止前导零的其他值类型转换时的通常行为不同。

例:

var positiveBigInt = new BigInteger(128);

var negativeBigInt = new BigInteger(-128);

Console.WriteLine(positiveBigInt.ToString("X"));

Console.WriteLine(negativeBigInt.ToString("X"));

结果:

080

80

此行为有一个目的,因为前导零表示该BigInteger值为正值-本质上,前导零提供了正负号。这是必要的(与其他值类型转换相反),因为a

BigInteger没有固定的大小;因此,没有指定的符号位。前导零标识一个正值,而不是负数。这允许“往返”

BigInteger值从穿出,再从穿通ToString()回去Parse()。MSDN 上的BigInteger

Structure页面上讨论了此行为。

扩展方法:BigInteger到Binary,Hex和Octal

这是一个包含扩展方法的类,用于将BigInteger实例转换为二进制,十六进制和八进制字符串:

using System;

using System.Numerics;

using System.Text;

///

/// Extension methods to convert

/// instances to hexadecimal, octal, and binary strings.

///

public static class BigIntegerExtensions

{

///

/// Converts a to a binary string.

///

/// A .

///

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。