überlegs dir mal so (dezimal):
du hast den zahlenbereich von 0..1000. den willst du jetzt in den bereich von 0..10 mappen (eben so, dass das verhältnis gleichbleibt).
sagen wir, wir hätten die zahl 234:
234 / 1000 = 0,234 -> 23,4% von 1000
0,234 * 10 = 2,34
234 umgemappt ist also 2.
2 ist genau der wert der beiden höchstwertigen stellen von 0234. wir nehmen also einfach immer die höchstwertigen stellen und vergessen den rest.
hätten wir also jetzt z.b. den farbwert 10011010b (154) im intervall 0..255. dann rechnen wir ihn um auf 0..16:
154 / 255 = 0.6039...
0.6039 * 16 = 9,66...
die höchstwertigen 4 bits:
1001b = 9 dezimal
wenn du jetzt runden wolltest, müsstest du einfach noch ein bit mehr anschauen und, je nachdem ob dieses 0 oder 1 ist, 1 addieren oder nicht (also einfach das fünfthöchstwertige bit addieren)
eine andere überlegung wäre z.b. noch, dass ja die höchstwertigen bits die sind, die sich am langsamsten ändern. die grundinformation steckt also in den höchstwertigen bits und es wird genauer je mehr niederwertige du dazunimmst.
das is jetzt alles ziemlich unwissenschaftlich ausgedrückt. ich hoffe mal es is nicht zu verwirrt und du weist was ich meine