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); }
public override double get_val() { return(data.get_double(type)); }