c# - 如何将十进制(或浮点)转换为二进制?C#
问题描述
我有这个给定的数字,例如10.5,我想将它转换成它的二进制表示。结果应该是1010.1。如何在 C# 中实现这一点?
解决方案
要转换小数点前的部分,您可以使用内置的Convert.ToString(integerPart, 2)
我不相信小数部分有这样的内置函数,但你可以像在学校学习的小数部分那样做:
// x must be < 1
string ConvertFractionalPart(double x, int maxDigits)
{
var sb = new StringBuilder();
while (x > 0 && sb.Length < maxDigits)
{
if (x >= 0.5)
{
sb.Append("1");
x -= 0.5;
}
else
{
sb.Append("0");
}
x = 2*x;
}
return sb.ToString();
}
推荐阅读
- ios - 'SwiftClass' 不可用:找不到此类的 Swift 声明 - 仅限 iOS 模拟器
- sql - 为什么选择复制58000行比删除10000行快
- javascript - 初始化多个变量时如何减少代码量
- macos - 由于图像,AppleScript 不符合要求
- asp.net - 使用 aspnet_regiis.exe 加密 Web.config
- multithreading - 为什么tcp连接数达到1000时会断开一部分连接?
- sas - 为什么压缩功能在 SAS Enterprise Guide 中不起作用?
- r - 使用 %in% 查找不完全匹配的短语
- istio - 在 Pilot 上禁用发送 Zipkin 跨度
- php - 如何删除箭头中给出的数组