簡體   English   中英

將浮點數轉換為無符號整數C ++

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM