Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有IEEE754单精度分辨率的C数字上下_C#_Floating Point_Hex_Ieee 754 - Fatal编程技术网

C# 具有IEEE754单精度分辨率的C数字上下

C# 具有IEEE754单精度分辨率的C数字上下,c#,floating-point,hex,ieee-754,C#,Floating Point,Hex,Ieee 754,我希望能够在C中构造一个numericUpDown字段,在每个箭头上单击该字段中的值,该值将增加一个分辨率 比如, 假设我的值是20.0,它的IEEE754十六进制表示是0x41a00000 如果单击向上箭头按钮,我希望看到0x41a00001的十进制表示形式,即20.0000019073 同样,如果我单击向下箭头,我将看到19.999990927 我尝试将numericUpDown的Increment属性设置为0.0000019073,但我认为这个值在IEEE754中不是常量 更简洁地说,如果

我希望能够在C中构造一个numericUpDown字段,在每个箭头上单击该字段中的值,该值将增加一个分辨率

比如,

假设我的值是20.0,它的IEEE754十六进制表示是0x41a00000

如果单击向上箭头按钮,我希望看到0x41a00001的十进制表示形式,即20.0000019073

同样,如果我单击向下箭头,我将看到19.999990927

我尝试将numericUpDown的Increment属性设置为0.0000019073,但我认为这个值在IEEE754中不是常量

更简洁地说,如果该值为700.0,则其IEEE754表示形式为0x442f0000,但0x442f0001对应于700.000061035,因此在本例中,它将增加0.000061035,而不是0.0000019073


谢谢。

使用类似以下内容:

浮动启动=20.0F; byte[]bytes=BitConverter.GetByTessStart; int integer=BitConverter.toint32字节,0; 字符串hex=integer.ToStringX8; 整数++; 字符串hex2=integer.ToStringX8; byte[]bytes2=BitConverter.GetBytesinteger; 浮点结束=位转换器。到单字节2,0;
通过flot.Epsilon递增如何?问题是,由于numericUpDown的数据类型是decimal,当事件被+-1.40129846432e-45更改时,不会触发该事件。哪个事件没有被触发?从您的帖子中,似乎事件触发用户按下按钮应该修改小数点。很抱歉,忘了提及valuechanged事件。我认为1.40129846432e-45被转换为十进制0.0,事件无法处理它。啊,对不起,我不太熟悉winforms,所以我误解了。我做了一些研究,现在对它有了更好的了解。根据其他答案,10^-28是十进制的最小值,因此10^-45太小了。如果你真的需要确定的话,你可以稍微修改一下小数点,但我认为现在还是坚持10^-28。另一件事是,我不相信十进制是IEEE754,只有浮点和双精度,所以它无论如何都不起作用,那么相应的增量应该是end start对吗?是的。我会将int改为Uint32。您需要使用unsigned。符号位是第31位。如果你从一个负数开始,它会起作用吗?我认为问题是当你在0和-1之间转换时。零是0x00000000,而-1=0xBF800000。这不适用于负数,因为浮点格式使用符号和大小。当符号为负数时,向表示中添加一会将数字移动到更负的值,而不是增加它。0和0之间没有转换−1.接近0的浮点值为−2^−149, −0、+0和+2^−149.对于小于2的幂的任何数字,该代码也会失败。