反转 while 循环

Reversing a while loop

反转一个while循环,不知道这样问对不对,不过加油。我有一个代码可以将任何整数转换为两位或三位小数。如何? 将整数值除以2,直到小于10,在redo变量中依次计算除以的次数,得到第十次:decimal = (integer, redo):

        int InitialInteger = 190;
        int Integer = InitialInteger;
        int redo = 0;
        while (Integer > 10)
        {
            Integer = Integer / 2;
            redo++;
        }
        //Salida: 5,5

现在我想取回初始整数值(“反转循环”),即,将整数部分乘以 2 的次数与小数部分表示的次数相同:Integer = (decimal1 * 2)^decimal2

        int decimal1 = Int16.Parse(Decimal.Split(',')[0]);
        int decimal2 = Int16.Parse(Decimal.Split(',')[1]);
        while (decimal2 > 0)
        {
            redo -= 1;
            InitialInteger += decimal2 * 2;
        }
        //Salida: 60

但它不起作用,它永远不会 returns 初始值! 有什么想法吗?

请注意,您必须将 Integer 设置为 float 而不是 int 才能工作。

改用这个

int InitialInteger = 190;
float temp = InitialInteger;
int redo = 0;
while (temp > 10)
{
    temp= temp / 2;
    redo++;
}

然后反转

while (redo > 0)
{
    temp = temp * 2;
    redo--;
}

最后温度(或你所说的整数!)又是 190