unsigned int julery_isqrt(unsigned int val) { unsigned int temp; unsigned int g; g=0; unsigned int b; b = 0x8000; unsigned int bshft; bshft = 15; int i; for (i = 0; i < 16; i++) { temp = g << 1; temp = temp + b; temp = temp << bshft; if ( val >= temp) { g += b; val -= temp; } bshft--; b = b >> 1; } return g; }