fork download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. double quantize(double x, int bits) {
  5. int scaled = std::round(x * (1 << bits));
  6. return scaled / static_cast<double>(1 << bits);
  7. }
  8.  
  9. int main() {
  10. double a = 1.0 / 10.0;
  11. double b = 1.0 / 5.0;
  12. double c = 2.0 / 7.0;
  13.  
  14. std::cout << "a) 1/10, 9 bitow -> " << quantize(a, 9) << std::endl;
  15. std::cout << "b) 1/5, 8 bitow -> " << quantize(b, 8) << std::endl;
  16. std::cout << "c) 2/7, 7 bitow -> " << quantize(c, 7) << std::endl;
  17.  
  18. return 0;
  19. }
  20.  
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
a) 1/10, 9 bitow -> 0.0996094
b) 1/5,  8 bitow -> 0.199219
c) 2/7,  7 bitow -> 0.289062