Sări la conținut
Complet local

Convertor de complementul doi

Convertiți un număr întreg în modelul de biți al complementului doi cu lățimea de biți aleasă, sau decodificați biții înapoi la un număr.

Intrare
Ieșire

Convertor de complementul doi

Calculatoarele stochează numere negative folosind complementul doi, nu un simplu semn minus — același model de biți reprezintă o valoare diferită în funcție de dacă este citit ca număr cu semn sau fără semn. Acest instrument convertește în ambele direcții: introduceți un număr întreg pe linie și produce modelul de biți corespunzător al complementului doi în lățimea aleasă, sau schimbați direcția și lipiți modele de biți pentru a obține valoarea zecimală cu semn (sau fără semn) pe care fiecare o reprezintă.

Alegeți o lățime de biți de 8, 16, 32 sau 64 — dimensiunile pe care le folosesc real procesoarele și limbajele de programare pentru un octet, short, int și long — și un format de ieșire binar sau hexazecimal. Opțiunea "Cu semn" controlează modul în care este interpretat o valoare: când este activată, un model de biți este citit ca complementul doi (deci bitul superior înseamnă negativ) și un număr trebuie să se încadreze în intervalul cu semn pentru acea lățime; când este dezactivată, ambele direcții tratează aceiași biți ca o număr întreg fără semn obișnuit. Schimbarea direcției schimbă codificarea cu decodificarea fără a pierde intrarea, deci verificarea unei conversii dus-întors este doar un clic.

Depășirea este locul în care complementul doi devine confuz, deci acest instrument o face vizibilă în loc să o ascundă: un număr în afara intervalului de lățime ales se mai încapsulează și în modul în care o face hardware-ul real — această încapsulare este modelul corect de complementul doi, nu o eroare — dar liniile afectate sunt de asemenea marcate și numărate în rezumat, deci o depășire neintenționată într-o listă de numere nu scapă neobservată. Dezactivați această marcare dacă explorați în mod deliberat comportamentul de încapsulare și nu doriți ca acesta să fie indicat.

Lipiți o coloană întreagă de numere sau modele de biți dintr-o dată; fiecare linie este convertită independent și liniile goale sunt păstrate pentru ca rezultatul să rămână aliniat cu intrarea. Tot se execută local în browserul dumneavoastră — nimic din ceea ce lipiți, inclusiv constantele proprietare sau valorile de firmware, nu este niciodată încărcat nicăieri.

FAQ

Ce este complementul doi, într-o propoziție?
Este modalitatea standard prin care calculatoarele reprezintă numere întregi negative în binar: aceiași biți care reprezintă un număr pozitiv mare atunci când sunt citiți fără semn reprezintă un număr negativ când bitul superior este citit ca semn, și cele două interpretări diferă exact cu 2^lățime.
De ce o valoare este marcată ca "în afara intervalului" în loc de a fi pur și simplu o eroare?
Încapsularea este comportamentul corect al complementului doi pentru o valoare în afara intervalului, nu o eroare, deci instrumentul produce în continuare biții încapsulați. Marchează liniile afectate pentru ca o depășire neintenționată într-o listă de numere să fie ușor de detectat; dezactivați "Marca valori în afara intervalului" dacă nu doriți această notificare.
Ce schimbă opțiunea "Cu semn"?
Când este activată, decodificarea tratează bitul superior ca semn (complementul doi standard) și codificarea necesită ca numărul să se încadreze într-un interval cu semn ca -128..127 la 8 biți. Când este dezactivată, aceiași biți sunt citiți ca o valoare obișnuită fără semn de la 0 la 2^lățime - 1.
Pot converti o listă întreagă de numere dintr-o dată?
Da. Lipiți un număr (sau un model de biți la decodificare) pe linie și fiecare linie este convertită independent, în aceeași ordine, cu liniile goale păstrate.
Datele mele sunt încărcate undeva?
Nu. Conversia se execută în întregime în browserul dumneavoastră — nimic din ceea ce introduceți sau lipiți nu este niciodată trimis unui server.