This is a simple Integer based Manual Square root function that i discovered on google ...

unsigned char sqrt(unsigned int N) {
unsigned int x,j;

for (j = 1<<7; j<>0; j >>= 1 )
{
x = x + j;
if (x*x > N )
x = x - j;
}
return(x);
}

COuld someone please explain the logic behind this function? I don't quite understand what the << and >> does??? Also, what is "unsigned" ? THe only data types im familiar with at the time is int, char, string, double, and void???? lol, thanks in advance .