Exemplo n.º 1
0
        public void set_para_val()         //设置参数值,根据bit_len判断是从df取得还是从du64取得。
        {
            //做运算:根据不同的输入类型,都转换成double来做运算。
            double d = 0;

            if (bit_len > 0)             //若配了bit长度,说明是按位处理
            {
                data.du64 >>= bit_st;
                data.du64  &= masktab[bit_len];
                if (bit_singed != 0)                 //若是有符号数,需要给符号位
                {
                    int shift_n = 64 - bit_len;
                    data.du64 <<= shift_n;
                    data.ds64 >>= shift_n;
                    d           = data.ds64;
                }
                d = data.du64;
            }
            else
            {
                d = data.get_double(type);              //整数或浮点都能兼容
            }
            d = d * pro_k + pro_b;
            //最后给引用的参数
            ParaValue_Val p = (ParaValue_Val)ref_para;             //二进制为值类型,输出也必然是值类型

            p.set_val(d);
        }
Exemplo n.º 2
0
 public override double get_val()
 {
     return(data.get_double(type));
 }