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
987 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!

source:php.cn
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