我正在寻找的是像decbin
C#中的PHP 函数.该函数将小数转换为字符串表示形式.
例如,使用decbin(21)
它时返回10101
结果.
我发现这个功能基本上可以实现我想要的功能,但也许有更好/更快的方式?
Kon*_*lph 159
var result = Convert.ToString(number, 2);
Run Code Online (Sandbox Code Playgroud)
- 几乎是(无用)Convert
课程的唯一用途.
Guf*_*ffa 30
大多数方法会比您找到的功能更好更快.这不是一个关于如何进行转换的非常好的例子.
内置方法Convert.ToString(num, base)
是一个明显的选择,但如果您需要以不同的方式工作,则可以轻松编写替换方法.
这是一个简单的方法,您可以在其中指定二进制数的长度:
public static string ToBin(int value, int len) {
return (len > 1 ? ToBin(value >> 1, len - 1) : null) + "01"[value & 1];
}
Run Code Online (Sandbox Code Playgroud)
它使用递归,第一部分(在+之前)调用自身来创建除最后一个数字之外的数字的二进制表示,第二部分处理最后一个数字.
例:
Console.WriteLine(ToBin(42, 8));
Run Code Online (Sandbox Code Playgroud)
输出:
00101010
Run Code Online (Sandbox Code Playgroud)
int toBase = 2;
string binary = Convert.ToString(21, toBase); // "10101"
Run Code Online (Sandbox Code Playgroud)
要使二进制值(至少)指定位数,并用零填充:
string bin = Convert.ToString(1234, 2).PadLeft(16, '0');
Run Code Online (Sandbox Code Playgroud)
Convert.ToString 转换为二进制字符串。
PadLeft 添加零以填充最多 16 位数字。