I am trying to convert a C programme to a scrip basic language.

The C programme is fairly simple but produces unexpected results - it is the unxpected result that I would like to emulate with script basic.

I am hoping someone can explain the mechanism that the C programme is using to come up with the unexpected result, then I will try and put that in practice in script basic using the available functions.

The C programme:

Normally if you divide -248625283 by 256 you would get a result of -971192 (integer)Code:main() { unsigned int crc; crc=-248625283; printf("crc before div by 256 %d\n", crc); printf("crc is a negative number to start with \n"); crc=crc/256; printf("crc after divide by 256 and assigned to an unsigned integer equals %d decimal \n", crc); }

Similarly if you divide 248625283 by 256 you would get a result of 971192.

The programme above gives a result of 15806023 . I expect this is related to assigning a negative number to a unsigned integer. What I need to know is how to get this result (15806023) using basic maths functions.

I hope someone can help explain the mechanism that gives 15806023 when dividing -248625283 by 256.