1

我需要 C# 程序的帮助,该程序必须将任何数字(无论是整数还是长十进制数)转换为任何基数(在合理范围内)。

该程序有几个文本框(它是一个获胜表格),所有这些文本框都以空白开头。当用户将数字(可能带有小数)添加到其中一个框时,所有更新。默认框是基数 2、8、10、16,最后一个框有一个子框可以输入您选择的基数(例如,如果用户想要将基数 16 转换为基数 7。

除了 Convert 之外,我不知道任何具有基础转换能力的作品。

如果您不知道如何执行此操作,那么至少解释一下如何手动执行此操作会很棒!什么是八进制的 64.96(以十为底)?

这是一个个人项目。我设定了挑战,然后着手完成一个计划……

提前感谢您的帮助!!

编辑:我将如何在 C# 中执行此操作?int BaseX 是我需要到达的基础。int preBaseX 是我来自的基础。十进制 outputNumber 是我正在搜索的数字。十进制 inputNumber 是我们开始的地方。(可以是 650.3112 或其他)

4

1 回答 1

2

要将 64.96 转换为八进制,首先要确定要显示的“八进制点”之后的位置。假设您想要 3。然后将您的数字乘以 8^3 或 512。

64.96 * 512 = 33259.52

丢弃小数部分。顺便说一下,这就是您的代表距离 64.96 有多远。您的答案将是 0.52/512 = 0.001015625 太小。

现在,对于转换。反复将您的数字 (33259) 除以 8,跟踪余数:

33259 / 8 = 4157 remainder 3
4157  / 8 = 519  remainder 5
519   / 8 = 64   remainder 7
64    / 8 = 8    remainder 0
8     / 8 = 1    remainder 0
1     / 8 = 0    remainder 1

现在,以相反的顺序取余数并从末尾插入“八进制点” 3:

100.753

于 2013-11-04T17:50:52.687 回答