__udivmoddi4.c

来自「linux内核」· C语言 代码 · 共 32 行

C
32
字号
#include <stdint.h>uint64_t __udivmoddi4(uint64_t num, uint64_t den, uint64_t *rem_p){  uint64_t quot = 0, qbit = 1;    if ( den == 0 ) {    asm volatile("int $0");    return 0;			/* If trap returns... */  }  /* Left-justify denominator and count shift */  while ( (int64_t)den >= 0 ) {    den <<= 1;    qbit <<= 1;  }  while ( qbit ) {    if ( den <= num ) {      num -= den;      quot += qbit;    }    den >>= 1;    qbit >>= 1;  }  if ( rem_p )    *rem_p = num;  return quot;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?