我试图编写一个程序,将浮点数转换为IEEE 754单表示形式,反之亦然。我一直坚持如何接受输入,其形式为" 0xABCD123"或" 2.83234e-2" (十六进制表示总是以" 0x"开头),并将每个元素放入一个char数组中。
例如,输入" 0xABCD123"将在一个大小为10的字符数组中。我将删除" 0"和" x"元素,然后单独遍历每个元素并使用for循环从那里转换为浮点。
我认为从命令行获取参数很简单。参数存储在argv[1]
中,然后我将其保存到名为input
的初始化字符串变量中。问题在于input
并将每个元素放入一个字符数组中。第二个问题是如果输入不是IEEE格式,则确定阵列的长度。我还没有找到一个确定字符串长度的函数(删除小数点并考虑' e')。
另外,有几个问题:C会自动识别" e-2"输入的一部分并将其转换为实际数字?我可以使用一些命令来做到这一点吗?
如何在这里输入类型?如果输入是" 2.83234e3",我想将小数点左边的部分保存为int(因为这样更容易翻译),然后左边作为int也是如此,我如何通过类型转换分割数字?它会是input = (int)left;
吗?