如何將乙個範圍的數對映到另乙個範圍,這是乙個很簡單的問題。
但是有時候8位微控制器對乘除法支援不是很好,會出現溢位,這樣你就不能很好地得到你想要的數。
這裡我提供乙個簡單的演算法,可以對整型進行誤差較小的對映。
/************************************
*目的:將200 - 1023 中的某個數對映到 20 - 160 上
*原範圍:200 - 1023
*目標範圍:20 - 160
*大數到小數的對映會出現精度的損失,所以先將小數的範圍擴大,
*這裡採用的是左移n位,(也可以使用乘n來擴大範圍)
*擴大後必須使目標範圍至少大於原範圍
***********************************/
typedef unsigned int typeoriginal;
typedef unsigned int typetarget;
#define original_data_max 1023
#define original_data_min 200
#define target_data_max 160
#define target_data_min 20
#define left_shift_n 3
typetarget map(typeoriginal dat)
if(target <= original_data_min)
target -= original_data_min;
start = 0;
end = original_data_max-original_data_min;
start1 = 0;
end1= target_data_max-target_data_min;
end1 <<= left_shift_n;
while((start != end) && (start+1 < end))
else
} start1>>=left_shift_n;
return start1+target_data_min;
}
另乙個自己
人們常說 人貴有自知之明 可是話說回來,又有幾人能真正的了解自己呢?我覺得我就是乙個很沒有自知之明的人。生於89年的我,到了今年的生日就28周歲了。都說三十而立,正所謂成家立業,可以回過頭發現自己可以稱得上 一無是處,一無所有 曾幾何時,還是鄰居家叔叔阿姨教育孩子的榜樣 曾幾何時父母因為自己考個好大...
把資料夾對映到另乙個磁碟的資料夾(軟鏈結)
環境要求 使用方式 將junction.exe,直接扔到c windows system32 命令操作 1.建立軟鏈結 junction s 鏈結路徑 源路徑 前提是源路徑已經存在 2.刪除 junction d 鏈結路徑 使用window鍵 r,執行cmd,調出命令列介面 輸入 junction ...
乙個Ejb呼叫另乙個Ejb
乙個ejb呼叫另乙個ejb有兩種方法 第一是同個jndi 查詢 initialcontext ctx new initialcontext ihelloword helloworld ihelloword ctx.lookup helloworld remote 第二種 通過依賴注入 1 ejb i...