#include <iostream>
#include <cmath>
double quantize(double x, int bits) {
int scaled = std::round(x * (1 << bits));
return scaled / static_cast<double>(1 << bits);
}
int main() {
double a = 1.0 / 10.0;
double b = 1.0 / 5.0;
double c = 2.0 / 7.0;
std::cout << "a) 1/10, 9 bitow -> " << quantize(a, 9) << std::endl;
std::cout << "b) 1/5, 8 bitow -> " << quantize(b, 8) << std::endl;
std::cout << "c) 2/7, 7 bitow -> " << quantize(c, 7) << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgpkb3VibGUgcXVhbnRpemUoZG91YmxlIHgsIGludCBiaXRzKSB7CiAgICBpbnQgc2NhbGVkID0gc3RkOjpyb3VuZCh4ICogKDEgPDwgYml0cykpOwogICAgcmV0dXJuIHNjYWxlZCAvIHN0YXRpY19jYXN0PGRvdWJsZT4oMSA8PCBiaXRzKTsKfQoKaW50IG1haW4oKSB7CiAgICBkb3VibGUgYSA9IDEuMCAvIDEwLjA7CiAgICBkb3VibGUgYiA9IDEuMCAvIDUuMDsKICAgIGRvdWJsZSBjID0gMi4wIC8gNy4wOwoKICAgIHN0ZDo6Y291dCA8PCAiYSkgMS8xMCwgOSBiaXRvdyAtPiAiIDw8IHF1YW50aXplKGEsIDkpIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCAiYikgMS81LCAgOCBiaXRvdyAtPiAiIDw8IHF1YW50aXplKGIsIDgpIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCAiYykgMi83LCAgNyBiaXRvdyAtPiAiIDw8IHF1YW50aXplKGMsIDcpIDw8IHN0ZDo6ZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=