Plafond de division entière sans multiplication ni conversion en virgule flottante
En C et C, la division entière (x/y) renvoie la parole du résultat. Pour calculer le plafond à la place, en évitant les conversions en virgule flottante et les multiplications supplémentaires, envisagez les méthodes suivantes :
1. Utilisation de (x y - 1) / y :
unsigned int x, y, q; // Round up q = (x + y - 1) / y;
Cette formule garantit que le plafond est calculé, car elle ajoute 1 avant d'effectuer la division.
2. Éviter le débordement dans (x y) :
Pour éviter un débordement d'entier lors de l'ajout de x et y, une méthode alternative est :
q = 1 + ((x - 1) / y); // if x != 0
Cette formulation incrémente effectivement le plafond de 1, sauf quand x vaut 0, où il reste 0.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!