Matt Roach wrote: > > Ok, I got bored today so I was pissing around with medit.c and figured I'd > set the max number of levels you could have to about 5000, but when I > tried to make a mob over level 120 in medit, it goes to negitives, why? levels are stored in 1 signed byte. so 8 bits are used. with signed numbers, 1 bit is unsed to store the positive/negative info, and the remaining (7 in this case) are used to store the absolute number. 2^7 is 127. for the sake of speed, the computer doesn't check to see if you go over 127. so when you [accidently] do, it "overflows" into the 8th bit, where the positive/negative info is. you set the 8th bit on, which turns the entire number negative. here's a picture now: signed byte: 0 1 1 1 1 0 0 1 ^ +- the positive/negative flag > And yes I know there is prolly same lame little SIMPLE answer so please do > not flame me telling me how stupid I am. don't say that. it makes >some< people want to flame you more. -- "The optimist sees the doughnut, the pessimist sees the hole." char c[160],z;main(x,d){for/*/ -- Wedge -- /*/(x=159;x-- ;c[x]=32);c[79]=z;c[39]=88/*/ wedget@mci2000.com /*/;for(d=31;x =78,puts(c+z),d--;z=80-z)/*/ high school junior /*/for(;--x;c[x +80-z]=88-56*!(c[z-!0+x]/*/ mud and game coder /*/-c[z+x+1]));} +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST