我要作一个除法其结果为浮点数,应该怎么往x5045里保存?Vlu_Temp=(float)232/(float)1000在watch窗口看到的结果是0.232(hex)。应该如何写入?
回复(8) 2005-04-03 19:32 来自版块 - Keil C 使用
表情
lzl我也是这么想的!也只有如此了。(2005-04-05 18:30)
lbcat 其实你没必要先除100再保存,你可以直接保存整数形式,等运算到最后结果才除以100,这样就避免了很多浮点运算,而且保存操作也方便~~ 例如客户输入的系数是123(当然运算时是用1.23),你就把123这个整数保存下来就可以了。只要拿出来运算时记得除以100就可以(最好是完成...(2005-04-05 11:23)
lzl我在键盘上没设小数点,想让客户输入三个小于等于9的数字,由程序完成除以100,以得到两位小数,作为系数。要保持一定的精度。我想等用户(自己调试时也要用)输入完成,并且除完100后保存,以后直接调用。就像PID运算的参数。 你有好法么?(2005-04-05 09:26)
lbcat在watch窗口里选择hex显示对浮点数是无效的,因为它没法以hex的方式来表示…………所以怎么都会以十进制来显示的…… 你那个程序编译不了是正常的呀,都说了浮点数是不能用位运算的了~((float)232/(float)1000)在赋给Vlu_Temp前还是浮点数而不是uin...(2005-04-05 09:15)
lzl你可以试一下!编译后看看!(2005-04-04 17:39)
lzl在watch窗口里 选中 hex格式(不是十进制)也是显示0.232。我想用移位的方法拆成四个byte型 ,可是编译器通不过!(2005-04-04 17:37)
lbcat 浮点数就占4个字节,你就把这4个字节保存下来就行了,读的时候赋给一个浮点变量就行了…………0.232就是十进制来的,不是hex…………既然是float又怎么会给你进行位运算??float和long int虽然都占4个字节,但解释的方法是不同的………… :mad:(2005-04-04 14:51)
lzlVlu_Temp还不支持右移8位。明明是float 占4个字节,为什么不让右移? 这他妈的作PID运算还不偏到天上去了。真是个垃圾!(2005-04-03 21:06)

返回顶部