Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
If you do not care about efficiency and have a good compiler then use:I've been looking for a 255 element lookup table so I can convert an 8 bit value 0-255 to a percentage 0-100%.
If anyone has any links, I'd rather not work this out and type every line in.
uint8_t percent[256]={0,0,0,1,1,1,2,2,3,3,3,4,4,5,5,5,6,6,7,7,7,8,8,9,9,9,10,10,10,11,11,12,12,12,13,13,14,14,14,15,15,16,16,16,17,17,18,18,18,19,19,20,20,20,21,21,21,22,22,23,23,23,24,24,25,25,25,26,26,27,27,27,28,28,29,29,29,30,30,30,31,31,32,32,32,33,33,34,34,34,35,35,36,36,36,37,37,38,38,38,39,39,40,40,40,41,41,41,42,42,43,43,43,44,44,45,45,45,46,46,47,47,47,48,48,49,49,49,50,50,50,51,51,52,52,52,53,53,54,54,54,55,55,56,56,56,57,57,58,58,58,59,59,60,60,60,61,61,61,62,62,63,63,63,64,64,65,65,65,66,66,67,67,67,68,68,69,69,69,70,70,70,71,71,72,72,72,73,73,74,74,74,75,75,76,76,76,77,77,78,78,78,79,79,80,80,80,81,81,81,82,82,83,83,83,84,84,85,85,85,86,86,87,87,87,88,88,89,89,89,90,90,90,91,91,92,92,92,93,93,94,94,94,95,95,96,96,96,97,97,98,98,98,99,99,100};
uint8_t percent[256]={0,0,1,1,2,2,2,3,3,4,4,4,5,5,5,6,6,7,7,7,8,8,9,9,9,10,10,11,11,11,12,12,13,13,13,14,14,15,15,15,16,16,16,17,17,18,18,18,19,19,20,20,20,21,21,22,22,22,23,23,24,24,24,25,25,25,26,26,27,27,27,28,28,29,29,29,30,30,31,31,31,32,32,33,33,33,34,34,35,35,35,36,36,36,37,37,38,38,38,39,39,40,40,40,41,41,42,42,42,43,43,44,44,44,45,45,45,46,46,47,47,47,48,48,49,49,49,50,50,51,51,51,52,52,53,53,53,54,54,55,55,55,56,56,56,57,57,58,58,58,59,59,60,60,60,61,61,62,62,62,63,63,64,64,64,65,65,65,66,66,67,67,67,68,68,69,69,69,70,70,71,71,71,72,72,73,73,73,74,74,75,75,75,76,76,76,77,77,78,78,78,79,79,80,80,80,81,81,82,82,82,83,83,84,84,84,85,85,85,86,86,87,87,87,88,88,89,89,89,90,90,91,91,91,92,92,93,93,93,94,94,95,95,95,96,96,96,97,97,98,98,98,99,99,100,100};
Note that there are 256 entries in a table that spans 0-255. The following is simply floor(i / 2.55) and is readily created using the a spreadsheet with that formula.
Depends what you're after. While floor is accurate to 1% and round is accurate to 0.5%, round gives 100% at both 254 and 255, which is probably not desirable (I guess you could just change percent[254] to 99).Shouldn't it be round(i/2.55)?
Depends what you're after. While floor is accurate to 1% and round is accurate to 0.5%, round gives 100% at both 254 and 255, which is probably not desirable (I guess you could just change percent[254] to 99).
Valid point.How's 100 for 254 is undesirable, but 3 zeroes for 0, 1, and 2 are desirable?