[英]convert floats into unsigned ints c++
如何將浮點數轉換或縮放為無符號整數。
我有一個浮點向量,其最小值和最大值是已知的,例如-10到+10,我想將它們轉換為從0到int_max的無符號整數。
只需簡單地計算出浮動間隔在浮動間隔中的確切位置(即0-1值;您也可以將其視為百分比)。 然后相應地縮放最大整數值。 在代碼中:
const float minFloat = -10.f;
const float maxFloat = 10.f;
const unsigned int maxInt = std::numeric_limits<int>::max(); // Is that what you wanted?
unsigned int convert(float val)
{
val = (val - minFloat) / (maxFloat - minFloat);
return static_cast<unsigned int>(std::round(val * maxInt));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.