C++ 此除法算法的名称是什么?

C++ 此除法算法的名称是什么?,c++,c,algorithm,floating-point,computer-science,C++,C,Algorithm,Floating Point,Computer Science,我有一个算法执行浮点除法的尾数除法,但我不确定下面发布的算法的正确名称是什么(例如恢复、非恢复、SRT) 为了处理我的输入是浮点格式的这一事实,我减去了操作数指数以找到新的指数,对符号位进行异或运算以获得新的符号位,并对舍入方案执行舍入到最近值 但是,我使用维基百科的算法来划分尾数: (): 这是我的密码: {Code for handling exponent, sign bit, and grabbing mantissa, invalid input detection and zero

我有一个算法执行浮点除法的尾数除法,但我不确定下面发布的算法的正确名称是什么(例如恢复、非恢复、SRT)

为了处理我的输入是浮点格式的这一事实,我减去了操作数指数以找到新的指数,对符号位进行异或运算以获得新的符号位,并对舍入方案执行舍入到最近值

但是,我使用维基百科的算法来划分尾数: ():

这是我的密码:

{Code for handling exponent, sign bit, and grabbing mantissa, 
invalid input detection and zero input detection}
{op1 is the numerator, op2 is the divisor)
{assuming 32-bit floating point)

long long mant1, mant2;

mant1 = (1 << 23) & (op1 & 0x7FFFFF); // Make mantissas with hidden bit masked in
mant2 = (1 << 23) & (op2 & 0x7FFFFF);


long long Q = 0, N, D; // Declare quotient, numerator, and divisor
N = mant1 << 26;
D = mant2 << 26;

for (int i = 0; i < 28; i++) {
  Q = Q << 1; // Multiply quotient by 2

  if (N-D < 1) {
    N = N-D;   // Set new numerator equal to difference
    Q = Q | 1; // Set LSB of quotient to 1
  }

  D = D >> 1; // Shift divider right by 1;
}
{处理指数、符号位和抓取尾数的代码,
无效输入检测和零输入检测}
{op1是分子,op2是除数)
{假设为32位浮点)
长螳螂1,螳螂2;

mant1=(1)是什么让你认为这段代码是用于浮点运算的?它似乎在任何地方都没有引用指数。而且它看起来不仅与维基百科中的算法相似,它看起来像是它的逐字复制。对不起,我误解了这个问题。如果你对某段代码有疑问,请发布该代码,而不是维基百科中的代码它很像。无论如何,这不是一个编程问题。任何名字的算法都会闻起来很香。我怀疑许多程序员甚至不知道这个算法有名字,甚至不在乎。99%的人从来不需要编写除法算法。如果你在HLL中编程,你只需使用它的除法运算符;如果你在编写汇编程序,你就使用除法运算符ision指令。这只是一个琐碎的问题,不是一个实际的编程问题。我知道这是一个“不正常”的位除法。与其减去除数并在余数为负时恢复,不如先比较,只有在余数为正时才进行减法。