I see why they use that formula. What's an easy way (fast/less code) to convert this number into usable information.

The first byte will go from 0 to 7 but also from 15 to 8. When it is 0-7, the number is negative....0, -1, -2, -3..... When it is 15 to 8 (stepping down), the number is positive. In this case 15=1, 14=2, 13=3.....

I'm still not sure I understand the original equation correctly but when I was driving I got something like this:

D0=15 and D1=243. I know this is charging current and D0=1, which is a rollover from D1. In other words, once D1 increases from 255 to 256, D1 goes to 0 and D0 increases by 1. In this case, it went from 15 to 0. More current stepped down from 15 to 14. How would I apply this to that formula:

v[0]=0.1*(((d[0]&#0111)-(d[0]&#1000))*256+d[1])

v[0]=.1*(((7)-(8))*256+243

v[0]=.1*(-1)*256+243

v[0]=-.1*256+243

v[0]= -25.6 + 243

v[0] = 217.4

This number doesn't seem correct from a functional perspective but also when plugging in 14 in D0, I would expect the number to increase, not decrease. Is my math above correct?