De eerste keer dat een basisconversie me een werkavond kostte, was de boosdoener een toestemmingsbug. Een implementatiescript heeft bestandsmodi geschreven als chmod 755en een config loader leest dezelfde waarde uit een JSON-bestand als het nummer 755. JSON heeft geen octaal letterlijk. De lader is geslaagd 755 naar een syscall die een octale modus verwachtte, werd de modus geïnterpreteerd als decimaal 755 en decimaal 755 in binair 1011110011- tien stukjes onzin in een veld van negen bits Bestanden kregen uiteindelijk machtigingen waar niemand om had gevraagd en die niemand kon uitleggen.
Zo ziet de basisverwarring er in de praktijk uit. Het is bijna nooit een moeilijk rekenprobleem. Het is een waarde die correct is in de ene notatie en catastrofaal in een andere, die over een grens beweegt waar niemand opschreef welke basis bedoeld was. Binair, octaal, decimaal en hexadecimaal zijn vier manieren om hetzelfde gehele getal te schrijven, en een computer laat je ze graag door elkaar halen.
Dus bouwde ik de Nummer Basisomvormer in Toolz.dev om het ding te zijn waar ik op dat moment eigenlijk naar reik: plak een waarde, zeg in welke basis het zich bevindt, en zie het in elke andere basis tegelijk - samen met het aantal bits, het aantal bytes en het binaire getal dat in knabbels is vastgelegd, zodat het op één lijn ligt met de hex-cijfers erboven. Het verwerkt elke radix van 2 tot 36, het accepteert 0x, 0b, en 0o Voorvoegsels, en het doet al zijn rekenkunde in Bigint, dus een 256-bits hash converteert precies in plaats van stilletjes af te ronden in afval.
tl;dr: Een getal' s waarde verandert nooit wanneer je het converteert - alleen de notatie doet dat. De Nummer Basisomvormer Converteert gehele getallen tussen 2 naar 36, toont binair, octaal, decimaal en hexadecimaal, meldt bit- en bytelengte, gebruikt Bigint, dus precisie geldt op elke grootte en draait volledig in uw browser.
Belangrijkste kenmerken
Elke basis van 2 tot 36
Binaire, octale, decimale en hexadecimale knoppen krijgen speciale snelkoppelingsknoppen omdat dit de vier zijn die in echte code verschijnen. Maar de bron- en doeldropdowns lopen het volledige bereik van grondtal 2 tot grondtal 36 - het plafond is het punt waarop u geen hoofdletterongevoelige alfanumerieke tekens meer hebt (tien cijfers plus zesentwintig letters). Basis 3, grondtal 12, grondtal 20, grondtal 32 en grondtal 36 zijn allemaal één klik verwijderd, en elk wordt weergegeven met de standaard 0-9A-Z cijferalfabet.
Exacte Bigint-Aritmetica
Dit is de functie die het belangrijkst is en het minst zichtbaar is in marketingexemplaren. JavaScript-getallen zijn IEEE-754-dubbels en ze vertegenwoordigen gehele getallen slechts tot 2^53 1, wat 9.007.199.254.740.991 is. voorbij dat, parseInt en Number begin met afronden - stil, zonder fout, een waarde produceren die er plausibel uitziet en fout is De meeste basisconverters op het web zijn gebouwd op precies die functies.
Deze parseert cijfer voor cijfer in een Bigint-accumulator (value = value * base + digit) en geeft door herhaalde deling weer naar buiten Er is geen precisieplafond Een 64-bits ID, een 256-bits hash, een RSA-modulus, een 500-cijferig decimaal - alle converteren exact.
Alle bases tegelijk
Eén invoer, vier uitgangen, live Het paneel toont binair, octaal, decimaal en hexadecimaal tegelijk, plus de door u gekozen aangepaste basis als het niet een van die vier is De meeste basisconversies zijn echt kruiscontroles - u wilt bevestigen dat de hex in uw debugger en de decimaal in uw logregel hetzelfde getal zijn - en als u ze alle vier tegelijk ziet, wordt een taak in drie stappen in één oogopslag omgezet.
Bitlengte, bytelengte en nibble-groepering
De reden waarom mensen naar binair geconverteerd zijn, is meestal niet nieuwsgierigheid naar de bits, het is een maatvraag: past dit in een byte, in een 32-bits int, in een ondertekende short? Dus de converter rapporteert de significante bitlengte (255 → 8 bits, 256 → 9 bits) en de bytelengte naar boven. De binaire output is opgevuld tot een geheel aantal hapjes en gegroepeerd in vieren, dus elke groep van vier bits zit direct onder het hexadecimale cijfer dat het codeert.
Vergevingsgezinde invoer, precieze fouten
Real-world waarden komen met decoratie. 0xDEADBEEF Van een stacktracering, 0b1010_1111 van een roest letterlijke 0o755 Van een chmod, FF FF FF gekopieerd uit een hex-editor. Het wordt allemaal geaccepteerd: voorvoegsels worden gestript wanneer ze het eens zijn met de geselecteerde basis, en onderstrepingen en spaties worden behandeld als cijferafscheiders.
Wanneer een cijfer illegaal is voor de basis die u hebt gekozen, geeft de fout het aan. symboliseren 1092 in basis 8 en je krijgt "9" is not valid in base 8. Base 8 uses 0-7.- geen generieke & quot; ongeldige invoer", die u niets vertelt over welk personage u moet bekijken.
Ondersteuning voor negatief getal
Negatieve waarden converteren en renderen met een toonaangevend minteken. Dat is een teken-magnitudenotatie, en het is het eerlijke antwoord, om redenen die in de onderstaande sectie van de twee complementaire worden behandeld.
draait volledig in uw browser
Geen netwerkrondreis, geen upload, geen logging. Het resultaat wordt bijgewerkt op elke toetsaanslag omdat de rekenkunde een paar microseconden verder is, en de pagina blijft werken zonder verbinding zodra deze is geladen.
Hoe de nummerbasisconverter te gebruiken
Stap 1: Voer uw nummer in
Typ of plak de waarde in het veld Van U hoeft de decoratie niet eerst te strippen - 0xFF, 0b1010, 0o755, 1010_1111, en DE AD BE EF worden allemaal geaccepteerd. toongevend + en - Tekenen werken. Voorloopnullen zijn onschadelijk.
Stap 2: Kies de bronbasis
Vertel de converter hoe u moet lezen wat u hebt getypt. Dit is de stap die mensen overslaan, en het is degene die ertoe doet: 101 is 5 in binair, 65 in octaal, 101 in decimaal en 257 in hexadecimaal. Vier verschillende nummers, één reeks tekens. De sneltoetsen beslaan binair, octaal, decimaal en hex; de vervolgkeuzelijst omvat alles van 2 tot 36.
Als de bronbasis geen teken kan lezen dat u hebt getypt, krijgt u een bericht dat dat teken een naam geeft in plaats van een stil fout antwoord.
Stap 3: Kies de doelbasis
Kies de basis die u wilt uit Het resultaat verschijnt onmiddellijk en wordt bijgewerkt terwijl u typt - er is geen convertknop, omdat er geen server is om op te wachten De swapknop keert de richting om en verplaatst het resultaat naar de invoer, wat de snelste manier is om een waarde af te ronden en te bevestigen dat deze overleeft.
Stap 4: Lees de panelen
Onder de conversie krijg je:
- Alle bases tegelijk- dezelfde waarde in binair, octaal, decimaal en hexadecimaal, plus uw aangepaste basis als u er een heeft gekozen.
- Bitlengte, bytelengte, hexadecimale cijfers- de maatnummers.
- gegroepeerd binair- de bits zijn opgevuld en opgesplitst in knabbels, uitgelijnd met de hex-cijfers.
Stap 5: Kopiëren
Kopieer het blote resultaat of kopieer de volledige uitdrukking (255 (base 10) = FF (base 16)) Als u wilt dat de conversie zichzelf documenteert in een commit-bericht, een codecommentaar of een bugrapport. De tweede optie is degene die u moet gebruiken wanneer u een nummer aan iemand anders uitlegt, omdat het de basis samen met de cijfers draagt.
Hoe positionele notatie eigenlijk werkt
Elke basis die we gebruiken is een positie- systeem, wat betekent dat een bijdrage van een cijfer hangt af van waar het zit. In basis B is het cijfer op positie I (van nul rechts) de moeite waard digit × b^i. Die ene regel genereert elke basis.
Neem 1.234 in decimaal:
1×10³ + 2×10² + 3×10¹ + 4×10⁰ = 1000 + 200 + 30 + 4 = 1234
Neem nu 1A3 In hexadecimaal, waarbij A 10 is:
1×16² + 10×16¹ + 3×16⁰ = 256 + 160 + 3 = 419
Zelfde regel, andere basis. en 10101111 in binair:
1×2⁷ + 0 + 1×2⁵ + 0 + 1×2³ + 1×2² + 1×2¹ + 1×2⁰ = 128 + 32 + 8 + 4 + 2 + 1 = 175
De twee algoritmen die uit deze regel vallen, zijn de hele converter:
Een getal lezen in basis B is een vouw van links naar rechts. Begin bij nul en voor elk cijfer: value = value × b + digit. Dit is de horner's methode, en daarom hoeft de converter nooit te berekenen b^i expliciet - geen machtsverheffing, geen drijvende komma, geen geaccumuleerde fout.
Een waarde schrijven in basis c is herhaalde verdeling. Deel door C, bewaar de rest als het volgende cijfer (van rechts), herhaal met het quotiënt totdat het nul raakt. De resten, achterstevoren gelezen, zijn de cijfers.
Beide bewerkingen zijn exact op gehele getallen, daarom geeft het in Bigint je een conversie zonder dat je ergens in de pijplijn afrondt. De waarde 123456789012345678901234567890 converteert naar hex als 18EE90FF6C373E0EE4E3F0AD2- 97 bits, 13 bytes - en converteert terug naar precies het decimaalteken waarmee je begon Probeer dat eens in een converter die erop is gebouwd parseInt.
Er is één detail dat het vermelden waard is over het cijferalfabet. Basis 36 is het praktische plafond omdat het de laatste basis is die u kunt schrijven met hoofdlettergevoelige ASCII-alfanumerieke waarden: 0-9 geeft je tien cijfers, A-Z geeft je er zesentwintig meer, en 10 + 26 = 36. duw er langs en je hebt hoofdlettergevoeligheid (basis 62) of een symboolalfabet (basis 64) nodig, op welk punt je geen rekenkundige notatie meer doet - je doet binair-naar-tekst codering, wat een andere taak is met andere regels Als dat is wat je eigenlijk nodig hebt, gebruik dan de Base64-converter in plaats daarvan.
Waarom hexadecimale kaarten zo netjes op binaire kaarten in kaart brengen
Hex is niet populair in programmeren omdat het compact is. Basis 10 is compacter dan basis 16 voor dezelfde waarde in termen van menselijke bekendheid, en als compactheid het doel zou zijn, zouden we basis 36 gebruiken. Hex won om één structurele reden: 16 is 2⁴.
Dat betekent dat één hexadecimaal cijfer precies vier binaire cijfers codeert - één nibble - waarbij geen enkele carry ooit de grens daartussen overschrijdt. De mapping is een opzoektabel, geen rekenkundige bewerking:
| tweevoudig | hers | tweevoudig | hers |
|---|---|---|---|
| 0000 | 0 | 1000 | 8 |
| 0001 | 1 | 1001 | 9 |
| 0010 | 2 | 1010 | a |
| 0011 | 3 | 1011 | si |
| 0100 | 4 | 1100 | do |
| 0101 | 5 | 1101 | re |
| 0110 | 6 | 1110 | mi |
| 0111 | 7 | 1111 | fa |
bekeerling 11111111 Door het te splitsen in 1111 1111, lees elke knabbel van de tafel en wisselt samen: FF. Geen rekenkundige. bekeerling 0xDEADBEEF binair door elk cijfer uit te vouwen: 1101 1110 1010 1101 1011 1110 1110 1111. De structuur overleeft.
Omdat een byte acht bits is en een hexadecimaal cijfer vier is, Eén byte is altijd precies twee hexadecimale cijfers. 0x00 doorgaand 0xFF Behandelt elke mogelijke byte, daarom worden hex-dumps, MAC-adressen, kleurcodes en geheugenadressen allemaal in hex geschreven. 0xFF vertelt je in één oogopslag dat je naar één volledige byte kijkt Decimaal 255 vertelt je niets van dien aard - je moet weten dat 255 28 is − 1, en je moet dezelfde terugroepactie doen voor 65535 en 4294967295.
Octal werkt volgens hetzelfde principe met 8 = 2³, dus één octaal cijfer is precies drie bits. Dat is precies waarom UNIX-bestandsmachtigingen octaal zijn: de modus is drie groepen van drie bits (lezen, schrijven, uitvoeren voor gebruiker, groep, andere) en drie bits is één octaal cijfer. chmod 755 is 111 101 101- en nu betekenen de cijfers iets in plaats van een magisch getal te zijn dat je uit je hoofd hebt geleerd. Het is ook de reden waarom mijn machtigingsfout zich heeft voorgedaan: 755 in decimaal is niet 755 in octaal, en niets over de string 755 Kondigt aan welke het is. de Nummer Basisomvormer Bestaat deels zodat je die vraag in drie seconden kunt oplossen.
Twee complementaire aanvulling, en waarom deze tool een minteken gebruikt
lid worden van -42 en de converter keert terug -101010. Sommige mensen verwachten 11010110 En beschouw het minteken als een bug. Dat is het niet, en de reden is het begrijpen waard, omdat het het meest onbegrepen is aan binair.
Twee complementaire complement is geen eigenschap van een nummer. Het is een eigenschap van een register met vaste breedte.
De waarde 1 heeft geen canonieke binaire representatie. In een 8-bit twee complementregister is het 11111111 ((0xFF). In 16 bits is het 0xFFFF. In 32 bits, 0xFFFFFFFF. In 64 bits, zestien FS. Dit zijn geen vier verschillende manieren om hetzelfde bitpatroon te schrijven; het zijn vier Verschillende bitpatronen, en welke correct is, hangt volledig af van een breedte die leeft in uw typeverklaring, niet in het nummer.
Een willekeurig-precisie geheel getal - dat is wat een BigInt is, en waar deze converter mee werkt - heeft geen breedte Dus de enige representatie die betekenisvol is zonder extra context is teken-magnitude: een minteken gevolgd door de magnitude' s cijfers Dat is wat je krijgt, en het is eerder het eerlijke antwoord dan een vol vertrouwen verkeerde.
wanneer jij beginnen te beginnen Een complementpatroon van twee, nodig, het recept is eenvoudig en je kunt het in deze tool uitvoeren:
- Bepaal je breedte,
nBits. - schatten
2^n + value(metvaluenegatief). Voor 42 in 8 bits: 256 42 = 214. - Converteer 214 naar uw doelbasis:
11010110in binair,D6in Hex.
De mechanische snelkoppeling die je misschien hebt geleerd - draai elke bit om, voeg er dan één toe - levert hetzelfde resultaat op, omdat het omkeren van alle n bits van x geeft (2^n − 1) − xen het toevoegen van een geeft 2^n − x. De rekenkundige identiteit is dezelfde bewerking; de bit-flipping versie is precies hoe je het doet zonder een scheidingswand.
Een snelle referentie voor de breedtes die mensen daadwerkelijk gebruiken:
| ruimheid | Bereik (ondertekend) | 1 in hex | meest negatieve waarde |
|---|---|---|---|
| 8-bits | −128 tot 127 | FF |
80 (−128) |
| 16-bits | −32.768 tot 32.767 | FFFF |
8000 |
| 32-bits | −2.147.483.648 tot 2.147.483.647 | FFFFFFFF |
80000000 |
| 64-bits | ±9,22 × 10¹⁸ | FFFFFFFFFFFFFFFF |
8000000000000000 |
Let op de asymmetrie in elke rij: er is één negatieve waarde dan positief, omdat nul een slot aan de positieve kant beslaat. Dat is de bron van de klassieke overloopbug waarbij het ontkennen van het meest negatieve geheel getal zichzelf teruggeeft. Als u de bits van een waarde of een tekenreeks direct wilt zien, de binaire vertaler is daar de begeleidende tool voor.
Waar is basis 36 voor?
Base 36 ziet eruit als een nieuwsgierigheid en is eigenlijk de meest praktische van de "exotische" basen, om één reden: het is de dichtste getalnotatie die overleeft om gevouwen te worden, getypt door een mens en in een URL valt zonder te ontsnappen.
Vergelijk dezelfde 64-bits waarde over de bases:
| grondvlak | Cijfers nodig voor een 64-bits waarde | toonbeeld |
|---|---|---|
| Binair (2) | 64 | 1111... |
| Decimaal (10) | 20 | 18446744073709551615 |
| Hexadecimaal (16) | 16 | FFFFFFFFFFFFFFFF |
| Basis 36 | 13 | 3W5E11264SGSF |
| Basis 62 | 11 | hoofdlettergevoelig |
Base 36 levert een besparing van 35% op over hex en 35% besparing op decimaal, waarbij alleen tekens worden gebruikt die veilig zijn in een URL-pad, veilig in een bestandsnaam, ondubbelzinnig via de telefoon en identiek zijn, of de gebruiker ze nu in hoofdletters typt of niet. Daarom verschijnt het in korte link-ID's, factuurnummers, couponcodes, bestelreferenties en compacte tijdstempels. Date.now().toString(36) is een veel voorkomende truc voor het genereren van een korte, sorteerbare, mens-typbare ID.
De afweging is leesbaarheid: 3W5E11264SGSF is niet iets dat je kunt zien voor structuur zoals je kunt met Hex, en er is geen schone bituitlijning omdat 36 geen kracht van twee is. Gebruik basis 36 wanneer het getal een ondoorzichtige identificatie is en het doel compactheid is. Gebruik hex wanneer de bitstructuur van het getal het punt is.
Veelvoorkomende gebruiksgevallen
Het debuggen van geheugen en hex dumps. Je debuggershows 0x7FFE4A3C, uw logboek toont 2147330620, en u moet weten of ze hetzelfde adres zijn. Plak de ene, lees de andere.
Bestandsrechten. bekeerling 755 van octaal tot binair en zie 111 101 101, wat precies de negen toestemmingsbits zijn in de volgorde waarin het veld Mode ze definieert. Dit is de snelste manier om aan iemand uit te leggen waarom chmod 644 en chmod 664 verschillen door één groepsschrijfbit.
Kleurwaarden. #FF5733 is drie bytes: rood 255, groen 87, blauw 51. het splitsen van een hex-kleur in de decimale componenten is een twee-hex-cijfer-per-een-tijd-conversie Voor de volledige workflow - paletten, contrast, formaatconversie - de kleurenkiezer Behandelt het van begin tot eind, maar de onderliggende rekenkunde is precies dit.
Bit maskers en vlaggen. een vlaggenveld van 0b00101100 is 0x2C en decimaal 44. Wanneer u controleert welke vlaggen zijn ingesteld, is binair de enige leesbare vorm; wanneer u de constante in code schrijft, is Hex. Je hebt beide nodig, constant.
netwerk- en protocolwerk. Subnetmaskers, MAC-adressen, IPv6-groepen, protocolnummers en checksums zijn allemaal hex of binair in de specificatie en decimaal in de helft van de tooling. Vooral IP-adresoctetten zijn decimaal in gestippelde notatie en binair op het moment dat u een masker aanraakt.
Hashes en identifiers. a SHA-256 uitvoer is 64 hex karakters - 256 bits, 32 bytes Omzetten naar decimaal levert een 78-cijferig getal op, en dat is precies waar elke naïeve converter breekt, want het is ruwweg 10^25 keer groter dan het veilige integer plafond Als je die hashes genereert in plaats van ze om te zetten, dan is de Hash-generator produceert ze klantzijde.
Interview en cursusproblemen. Basisconversie is een hoofdbestanddeel van CS-fundamentals, en het hebben van een referentie-implementatie die de waarde in alle vier de gemeenschappelijke bases tegelijk laat zien - met het aantal bits - zorgt ervoor dat je je eigen werk snel controleert.
Basisvergelijking in één oogopslag
| grondvlak | heten | cijfers | Bits per cijfer | waar je het ziet |
|---|---|---|---|---|
| 2 | tweevoudig | 0-1 | 1 | Bitmaskers, vlaggen, hardwareregisters |
| 8 | acht- | 0-7 | 3 | UNIX-bestandsmachtigingen, legacy C-letterlijkheden |
| 10 | tientallig | 0-9 | ~3.32 | Alles wat een mens schrijft |
| 16 | hexadecimaal | 0-9, A-F | 4 | Geheugenadressen, kleuren, hashes, bytes |
| 32 | Basis 32 | 0-9, A-V | 5 | Compacte behuizingongevoelige coderingen |
| 36 | Basis 36 | 0-9, A-Z | ~5.17 | Korte ID's, factuurcodes, URL-veilige nummers |
De " bits per digit" kolom legt de hele tabel uit Bases die machten van twee zijn (2, 8, 16, 32) hebben een geheel aantal bits per cijfer, wat betekent dat cijfers worden toegewezen aan bitgroepen zonder dat carry de grens overschrijdt - dat is wat hex-naar-binair opzoeken maakt in plaats van een berekening Bases die geen machten van twee zijn (10, 36) hebben een fractionele bits per cijfer, daarom vereist het converteren van decimaal naar binair echt rekenkunde en kan dit niet worden gedaan door substitutie.
En dezelfde invoerreeks kan een legaal getal zijn in verschillende bases met totaal verschillende waarden. 101 is een goede om in gedachten te houden:
| lezen als | waarde |
|---|---|
| tweevoudig | 5 |
| acht- | 65 |
| tientallig | 101 |
| hexadecimaal | 257 |
| Basis 36 | 1.297 |
Vijf getallen, één tekenreeks De basis is geen weergavevoorkeur - het maakt deel uit van de gegevens, en elke bug in dit artikel komt ergens vandaan die vergeten is het op te schrijven.
Voor een bredere blik op welke browsergebaseerde hulpprogramma's het waard zijn om binnen handbereik te houden, heb ik degene die ik dagelijks gebruik in De toolkit van de webontwikkelaar.
FAQ
Hoe converteer ik decimaal naar binair?
Verdeel het getal door 2 herhaaldelijk en lees de restanten van de laatste naar de eerste. Voor 42: 42÷2 = 21 rest 0, 21÷2 = 10 Remain 1, 10÷2 = 5 rest 0, 5÷2 = 2 Rest 1, 2÷2 = 1 rest 0, 12 = 0 Rest 1. Het lezen van de restanten bottom-up geeft 101010. De converter voert dit uit in Bigint-arithmetic, dus het blijft exact voor waarden die veel verder gaan dan alles wat een zakrekenmachine kan bevatten.
Hoe converteer ik HEX naar decimaal?
Vermenigvuldig elk hexadecimaal cijfer met 16 verhoogd tot de kracht van zijn positie, tellend vanaf nul aan de rechterkant, en voeg vervolgens de producten toe. ff is (15 × 16) + 15 = 255. 1A3 is (1 × 256) + (10 × 16) + 3 = 419. Stel de bronbasis in op 16, plak de waarde met of zonder een 0x voorvoegsel en de decimale verschijnt onmiddellijk.
Hoe converteer ik binair naar hex?
Groepeer de binaire cijfers in hapjes van vier, beginnend bij rechts, en breng elke knabbel in kaart met een enkel hexadecimaal cijfer. 11111111 splitst zich in 1111 en 1111, die f en f zijn, dus het antwoord is FF. De groepering werkt omdat 16 2 tot de vierde macht is, dus één hexadecimaal cijfer codeert precies vier bits en geen carry ooit een groepsgrens overschrijdt. Daarom wordt hexadecimaal gebruikt voor bytes: één byte is altijd precies twee hexadecimale cijfers.
Waarom gebruiken programmeurs hexadecimaal in plaats van decimaal?
Omdat HEX netjes op binaire en decimalen in kaart brengt. Eén hexadecimale cijfer is precies vier bits en één byte is precies twee hexadecimale cijfers, dus 0xFF is zichtbaar een volledige byte en 0xdeadbeef is zichtbaar vier bytes. Decimaal geeft je zo'n structuur niet: niets over 255 kondigt aan dat het een byte vult. HEX houdt de bit-lay-out leesbaar terwijl het een kwart van de lengte van onbewerkte binaire bestanden is.
Kan deze converter zeer grote getallen aan?
Ja. Elke waarde wordt geparseerd cijfer voor cijfer in een bigint, dus er is geen 2^53 plafond en geen drijvende-komma afronding op elke grootte. Een 256-bits hash, een volledige RSA-modulus of een 500-cijferige decimaal converteert precies. Converters gebouwd op Parseint of getal geruisloos corrupte waarden boven 9.007.199.254.740.991, wat precies het bereik is waar een fout het moeilijkst te herkennen is.
Ondersteunt het negatieve getallen en twee complementair?
Negatieve waarden worden ondersteund en weergegeven met een leidend minteken, wat tekenmagnitude-notatie is Two's complement wordt bewust niet toegepast, omdat het een eigenschap is van een register met vaste breedte in plaats van van een getal: −1 is FF in 8 bits, FFFF in 16 bits en FFFFFFFF in 32 bits Om een twee's complementpatroon te produceren, voegt u 2 toe aan de macht van de door u gekozen breedte naar de negatieve waarde en converteert u het resultaat - voor −42 in 8 bits, 256 − 42 = 214, wat D6 in hex is.
Waar wordt basis 36 voor gebruikt?
Base 36 gebruikt de cijfers 0-9 gevolgd door de letters A-Z, waardoor het de dichtste getalnotatie is die u kunt bouwen uit hoofdletterongevoelige ASCII-alfanumerieke waarden. Het produceert korte, URL-veilige, hoofdletterongevoelige tekenreeksen, en daarom verschijnt het in korte link-ID's, factuurcodes, couponcodes en compacte tijdstempels. Een 64-bits waarde neemt 13 basis-36 tekens in plaats van 20 decimale cijfers of 16 hexadecimale cijfers.
Wat betekenen bitlengte en bytelengte?
Bitlengte is het aantal significante bits in de grootte van de waarde, waarbij de voorloopnullen worden genegeerd: 255 heeft een bitlengte van 8 en 256 heeft een bitlengte van 9. De lengte van de byte is dat cijfer dat naar boven is afgerond op het volgende veelvoud van acht. Samen vertellen ze je het kleinste integer-type waarin de waarde past, wat meestal de werkelijke reden is waarom iemand een getal in de eerste plaats naar binair converteert.
Worden mijn gegevens naar een server verzonden wanneer ik een nummer converteer?
heel weinig . Elke conversie wordt in JavaScript in uw browser berekend, daarom wordt het resultaat op elke toetsaanslag bijgewerkt in plaats van na een netwerkrondreis. Er wordt niets dat u typt verzonden, gelogd of opgeslagen, en de converter blijft werken zonder netwerkverbinding zodra de pagina is geladen.



