【发布时间】:2015-04-19 18:57:28
【问题描述】:
所以我的任务是编写一个程序,该程序扫描来自用户的两个 32 字符的二进制字符串,这些字符串的长度始终为 32 个字符。在读入数字后,我应该询问用户他们希望字符串以二进制补码或 IEEE 浮点格式表示的格式。字符串的格式将决定字符串的数值。之后,它将用于一个简单的数学问题,并分别转换为八进制、十进制和十六进制。
我不确定的是如何将 32 个字符的字符串分别转换为二进制补码和 IEEE 浮点数。我已经尝试查找如何做到这一点,但所有的解释都超出了我对 C 的理解(这对我来说相对较新)。
这是一个示例二进制字符串,在其各自的表示中:
二进制字符串:01000000010010001111010111000011
格式:(Int) 表示二进制补码,或 (Float) 表示浮点数。
二进制补码表示:1078523331
浮点表示:3.14
【问题讨论】:
-
看起来像家庭作业。你尝试了什么?
-
我向教授请教了它的额外工作,因为我对 C 没有深入的了解。但我尝试将二进制 0 交换为 1,反之亦然,计算 1,然后做(2^i) 基于交换后有多少个 1。
-
IEEE 是一个专业协会:电气和电子工程师协会 (ieee.org)。您无法轻松地将二进制字符串转换为电气和电子工程师学院。
标签: c string binary floating-point