www.mikrocontroller.net

sqrt.c

sqrt.c
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;
}


webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net