Floating point 如何将分数转换为浮点?
假设我有0.128或0.008。分数不能用二进制定点表示,所以我不知道如何找出尾数,以便将其转换为浮点 假设我有int 100,则浮点二进制字符串为: 01000010110010000000000000000000. 我想对0.128做同样的处理,但我不知道如何对分数进行四舍五入,因为我需要对manttissa进行此操作。尝试使用此浮点对其进行位运算,它将帮助您了解其工作原理 例如: 目标数3.75Floating point 如何将分数转换为浮点?,floating-point,computer-science,Floating Point,Computer Science,假设我有0.128或0.008。分数不能用二进制定点表示,所以我不知道如何找出尾数,以便将其转换为浮点 假设我有int 100,则浮点二进制字符串为: 01000010110010000000000000000000. 我想对0.128做同样的处理,但我不知道如何对分数进行四舍五入,因为我需要对manttissa进行此操作。尝试使用此浮点对其进行位运算,它将帮助您了解其工作原理 例如: 目标数3.75 将其转换为2的幂(整数部分为正幂和,小数部分为负幂和) 5.75=1*2^2+0*2^1+1*
要将十进制数的小数部分转换为二进制,可以将小数部分连续乘以2。每个乘积将在整数部分生成0或1,这将是二进制表示的每个数字(按从左到右的顺序) 可以继续相乘,直到小数部分为0,或者直到获得所需的位数(然后截断或舍入) 请注意,只有两个负幂之和的分数才会有精确的表示形式。你会发现,以小数为基数的小数是周期性的 从您的示例中,0.008的二进制表示形式将以0.00000010开始
0.008 x 2 = 0.016 First fractional digit is 0
0.016 x 2 = 0.032
0.032 x 2 = 0.064
0.064 x 2 = 0.128
0.128 x 2 = 0.256
0.256 x 2 = 0.512
0.512 x 2 = 1.024 First one
0.024 x 2 = 0.048
...
请注意,在基数2中乘以2相当于向左移动,或将点向右移动一位,从而将第一个小数位数移动到整数部分。这些已经是浮点。是否要将浮点转换为分数?为什么
汇编
标记与此相关?@Anton那么您使用的是哪种汇编语言?它们有很多,它们之间可能有很大的不同。你有试过的东西吗?如果是的话,你能发布代码吗?你被困在哪里了?是的,你问的问题更清楚了。谢谢。:-)如果您有字符串“0.128”,请删除小数点并转换为整数128,然后除以1000。