Syslab如何将小数转为二进制?
技术分享
发布于 2025-08-06 16:35:22
查看 1过去300天
定义一个将十进制数(整数或小数)转换为二进制表示的函数,整数部分采用除2取余法,小数部分采用乘2取整法,最后组合结果输出。
function decimal_to_binary(number::Real)
# 将输入转换为 Float64 以处理整数和小数
number = Float64(number)
# 分离整数部分和小数部分
integer_part = floor(number)
fractional_part = number - integer_part
# 整数部分转二进制
integer_binary = string(Integer(integer_part), base = 2)
# 检查是否存在小数部分
if fractional_part == 0.0
return integer_binary
end
# 小数部分转二进制
fractional_binary = ""
while fractional_part > 0 && length(fractional_binary) < 32
fractional_part *= 2
bit = floor(Int, fractional_part)
fractional_binary = string(bit) * fractional_binary
fractional_part -= bit
end
# 组合结果
if length(fractional_binary) == 0
return integer_binary
else
return "$(integer_binary).$(fractional_binary)"
end
end
# 测试示例
number = 12.625
binary = decimal_to_binary(number)
println("十进制数 $(number) 转换为二进制为: $(binary)")
number = 12
binary = decimal_to_binary(number)
println("十进制数 $(number) 转换为二进制为: $(binary)")

所属专栏:Syslab基础平台
产品信息:Syslab科学计算环境