相关疑难解决方法(0)

将十六进制转换为浮点数,反之亦然

我正在尝试编写一个算法来将十六进制数转换为浮点数,反之亦然.这是一个赋值的一部分,该程序应该接收一个以'0x'或浮点数开头的8位十六进制数,并使用计算机的'内置IEEE 754功能'将数字转换为十六进制或浮点数.代码应该在C中.

我的方法如下.将用户的输入存储为字符串.将输入char数组传递给一个方法,该方法通过检查数组的前两个位置来检查它是否是十六进制数,该位置应为0和X(假设所有十六进制数都以这种方式传递).如果是这种情况,那么我检查十六进制是否是适当的形式,即在0-15范围之外没有太多的数字或数字(也考虑到ABCDEF惯例).

所以,我的问题是,我不知道如何将此数组转换回我可用于转换为浮点数的数字.我想过使用sscanf把它变回浮点但是我不太了解C并且没有找到任何好的在线资源

有人能指出我正确的方向吗?我还想过将用户输入同时存储为字符串和数字,但我不确定这是否可行.

这是两个表单检查函数和不完整的main方法:

int is_hex(char arr[])
{
    if (arr[0] == '0' && (arr[1] == 'x' || arr[1] == 'X')) {
        return 1;
    }
    return 0;
}

int check_if_good(char arr[])
{
    if (is_hex(arr)) {
        int len = strlen(arr);
        for (int i = 2; i < len; i++) {
            if ((arr[i] > 'f' && arr[i] <= 'z') || (arr[i] > 'F' && arr[i] <= 'Z')) {
                return 0;
            }
        }
    }

    return 1;
}

int main(int argc, const char …
Run Code Online (Sandbox Code Playgroud)

c arrays floating-point hex

3
推荐指数
1
解决办法
3万
查看次数

标签 统计

arrays ×1

c ×1

floating-point ×1

hex ×1