


PHP utilise des opérations sur bits pour implémenter l'addition, la soustraction, la multiplication et la division d'entiers et les tester (exemple de code)
Le contenu de cet article concerne PHP utilisant des opérations sur bits pour implémenter l'addition, la soustraction, la multiplication et la division d'entiers et les tests (exemples de code). J'espère que les amis dans le besoin pourront s'y référer. être utile pour vous aider.
<?php /** * Created by PhpStorm. * User: Mch * Date: 8/10/18 * Time: 23:51 * 只用位运算不用算数运算实现整数的 + - * / */ class Arithmetic { const MAX_INTEGER = 2147483647; const MIN_INTEGER = -2147483648; /** * @param int $a * @param int $b * @return int $a + $b; */ public static function add(int $a, int $b) : int { $sum = $a; while ($b) { $sum = $a ^ $b; // 不考虑进位 $b = ($a & $b) << 1; // 只考虑进位 $a = $sum; } return $sum; } /** * 相反数 <= 二进制表达取反+1(补码) * @param int $n * @return int */ private static function negateNumber(int $n) : int { return self::add(~$n, 1); } /** * a-b = a + (-b) * @param int $a * @param int $b * @return int */ public static function minus(int $a, int $b) : int { return self::add($a, self::negateNumber($b)); } /** * @param int $a * @param int $b * @return int $a * $b */ public static function multiple(int $a, int $b) : int { $res = 0; while ($b) { if (($b & 1)) { $res = self::add($res, $a); } $a <<= 1; $b >>= 1; } return $res; } private static function isNegative(int $n) : bool { return $n < 0; } /** * a/b a = MIN_INTEGER, b!=MIN_INTEGER ? * @param int $a * @param int $b * @return int */ private static function p(int $a, int $b) : int { $x = self::isNegative($a) ? self::negateNumber($a) : $a; $y = self::isNegative($b) ? self::negateNumber($b) : $b; $res = 0; for ($i = 31; $i >-1; $i = self::minus($i, 1)) { if (($x >> $i)>=$y) { $res |= (1 << $i); $x = self::minus($x, $y<<$i); } } return self::isNegative($a) ^ self::isNegative($b) ? self::negateNumber($res):$res; } /** * @param int $a * @param int $b * @return int $a / $b */ public static function pide(int $a, int $b) : int { if ($b === 0) { throw new RuntimeException("pisor is 0"); } if ($a === self::MIN_INTEGER && $b === self::MIN_INTEGER) { return 1; } else if ($b === self::MIN_INTEGER) { return 0; } else if ($a === self::MIN_INTEGER) { $res = self::p(self::add($a, 1), $b); return self::add($res, self::p(self::minus($a, self::multiple($res, $b)), $b)); } else { return self::p($a, $b); } } }
TEST :
echo Arithmetic::add(1, 2).PHP_EOL; // 3 echo Arithmetic::minus(10, 3).PHP_EOL; // 7 echo Arithmetic::multiple(5, 3).PHP_EOL; // 15 echo Arithmetic::pide(-2147483648, 1).PHP_EOL; // -2147483648 echo Arithmetic::pide(-15, 3).PHP_EOL; // -5
Recommandations associées :
Code pour une interaction simple entre les formulaires PHP et HTML
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

1 bit équivaut à un huitième d'octet. Dans le système de nombres binaires, chaque 0 ou 1 est un bit (bit), et un bit est la plus petite unité de stockage de données ; tous les 8 bits (bit, abrégé en b) constituent un octet (Byte), donc "1 octet ( Octet) = 8 bits ». Dans la plupart des systèmes informatiques, un octet est une unité de données de 8 bits (bits). La plupart des ordinateurs utilisent un octet pour représenter un caractère, un nombre ou un autre caractère.

Le code de test Redis dans cet article est basé sur l'environnement suivant : Système d'exploitation : MacOS Version 64 bits : Redis5.0.764bit Mode de fonctionnement : mode autonome Opération de bits Redis L'opération de bits Reids est également appelée opération de tableau de bits et bitmap. Elle fournit quatre commandes. : SETBIT, GETBIT, BITCOUNT et BITTOP Pour manipuler des tableaux de bits binaires. Examinons d'abord une vague d'exemples d'opérations de base Syntaxe SETBIT : SETBITkeyoffsetvalue est : command key offset 0/1 La commande setbit est utilisée pour écrire la valeur de réglage des bits binaires du décalage spécifié dans le tableau de bits. Le décalage commence à compter de 0 à . n'est autorisé qu'à écrire 1 ou 0,

1 octet est égal à 8 bits. Le stockage des données s'effectue en "octet" (Byte) comme unité, et la transmission des données se fait principalement en "bit" (bit) comme unité. Un bit représente un 0 ou un 1 (c'est-à-dire binaire), et tous les 8 bits (bit). ) forment un octet est la plus petite unité d'information, donc "1 octet = 8 bits".

CentOS est une distribution Linux issue de RHEL et compilée conformément aux réglementations du code open source. De plus, il maintient une compatibilité fonctionnelle avec RHEL et constitue un système d'exploitation gratuit et open source que les utilisateurs peuvent utiliser et modifier sans payer de droits d'auteur. CentOS fait-il donc la distinction entre 32 et 64 bits sous Linux ? Veuillez voir ci-dessous pour plus de détails. CentOS fait la distinction entre 32 bits et 64 bits ! Les principales différences : le système CentOS32bit est principalement destiné aux PC ; le système CentOS64bit est principalement destiné au calcul scientifique à grande échelle ; le système Linux 64 bits est principalement installé sur un système matériel 64 bits ;

1 octet équivaut à 8 bits. Dans le système de nombres binaires, chaque 0 ou 1 est un bit (bit), et un bit est la plus petite unité de stockage de données ; tous les 8 bits (bit, abrégé en b) constituent un octet (Byte), donc "1 octet ( Octet) = 8 bits ». Dans la plupart des systèmes informatiques, un octet est une unité de données de 8 bits. La plupart des ordinateurs utilisent un octet pour représenter un caractère, un nombre ou un autre caractère.

Analyse approfondie de Pi Coin: Pi Coin (π), une crypto-monnaie qui coexiste avec des opportunités et des défis, a attiré plus de 47 millions d'utilisateurs dans le monde depuis sa naissance en 2018 avec son mécanisme unique "Mobile Mining". Cet article explorera les informations de base, l'écosystème, les scénarios d'application et la controverse entourant Picoin, vous aidant à bien comprendre cet atout numérique controversé. PI COIN CORE INFORMATIONS CHINAGE Nom: Pai Coin Anglais Nom: Pi Coin, π Coin Common Abréviation: π Site officiel: https://minepi.com/ Fondateur: Nicolas Kokkalis (chef technique, Ph.D., Stanford University) et Chengdiao

Top Ten Virtual Devise Trading en 2025: 1. Binance; 2. OKX; Vous êtes mieux pour l'expérience utilisateur et d'autres facteurs.

Le langage C Linux a bit ; dans le langage C du microcontrôleur, bit est un nouveau mot-clé, souvent utilisé pour définir une « variable bit » ; la méthode de définition des données de type bit en langage C est la suivante : 1. Définir via sbit ou bit ; Défini via des champs de bits (dans les structures) ; 3. Défini via des opérateurs de bits combinés.
