Maison > développement back-end > C++ > Comment calculer le plafond de division entière en C/C sans multiplication ni opérations à virgule flottante ?

Comment calculer le plafond de division entière en C/C sans multiplication ni opérations à virgule flottante ?

Susan Sarandon
Libérer: 2024-11-22 08:48:14
original
1009 Les gens l'ont consulté

How to Calculate the Ceiling of Integer Division in C/C   without Multiplication or Floating-Point Operations?

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;
Copier après la connexion

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
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal