Calcolatrice bit a bit
60 AND 13 dà 12, 60 OR 13 dà 61 e 60 XOR 13 dà 49. Combini due interi a 32 bit con AND, OR, XOR o uno scorrimento e ottenga esattamente ciò che calcolerebbero C, Java o JavaScript, con entrambi i numeri accanto al risultato. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- A
- 60
- B
- 13
- Op
- Xor
- Risultato
- 49
Segue la stessa semantica in complemento a due usata da C, Java e JavaScript, quindi il numero che riceve corrisponde a ciò che calcolerebbe il Suo codice, senza arrotondamenti in virgola mobile e senza sorprese. Entrambi gli operandi vengono restituiti insieme al risultato, e qualsiasi valore che non sia un autentico intero a 32 bit viene rifiutato con un errore chiaro e non addebitato, invece di essere troncato in silenzio.
Cosa fa davvero un'operazione bit a bit
Una calcolatrice bitwise lavora sulla rappresentazione binaria degli interi invece che sul loro valore decimale. Quando calcola 60 AND 13, la macchina allinea i bit dei due numeri — 111100 e 001101 — e mantiene un 1 solo dove entrambi gli operandi hanno un 1, producendo 12. OR mantiene un 1 dove uno qualsiasi dei due ne ha uno, dando 61, e XOR mantiene un 1 solo dove i bit differiscono, dando 49.
Queste tre operazioni sono i mattoni dei campi di flag, delle maschere di permessi, delle sottoreti, delle funzioni di hash e dei formati di compressione. Poiché il risultato dipende solo dai due operandi, un calcolo bit a bit è completamente deterministico: la stessa coppia di interi produce sempre la stessa risposta, su qualsiasi macchina e in qualsiasi linguaggio che usi interi a 32 bit in complemento a due.
Scorrimenti, bit di segno e semantica a 32 bit
Gli scorrimenti spostano tutti i bit del primo operando a sinistra o a destra secondo la quantità indicata nel secondo. Uno scorrimento a sinistra di n posizioni moltiplica per due elevato alla n, scartando i bit che escono in cima; è la via rapida classica per le piccole potenze di due. Lo scorrimento a destra esiste in due varianti, e la differenza conta.
Lo scorrimento aritmetico, shr, copia il bit di segno nelle posizioni liberate, quindi un numero negativo resta negativo: meno otto fatto scorrere di una posizione a destra è meno quattro. Lo scorrimento logico, ushr, inserisce invece degli zeri, reinterpretando il valore come senza segno, ed è ciò che serve per estrarre campi di bit da una parola compatta. Seguendo la convenzione di JavaScript e Java, vengono usati solo i cinque bit bassi della quantità di scorrimento, quindi scorrere di 33 equivale a scorrere di 1.
Entrambi gli operandi vengono validati come autentici interi a 32 bit prima di toccare un solo bit, e qualsiasi input fuori intervallo o non intero viene rifiutato invece di essere troncato senza avviso.
Come usarla nella pratica
La richiesta ha tre campi: due interi, a e b, e l'operazione op, che può essere and, or, xor, shl, shr o ushr. La risposta ripete l'operazione ed entrambi gli operandi accanto al risultato intero, così può salvarla o registrarla senza ricostruire la chiamata. Non c'è stato tra le richieste e nulla viene memorizzato, quindi gli stessi input restituiscono sempre lo stesso risultato e i Suoi dati non si fermano mai su un server.
Casi d'uso
Decodificare flag compatti e maschere di permessi
Verifichi se un bit è attivo, azzeri un flag o combini i bit dei permessi di un campo ruoli con AND, OR e XOR senza scrivere uno script improvvisato.
Verificare l'aritmetica degli scorrimenti tra linguaggi
Confermi cosa produce uno scorrimento a destra con segno o logico prima di portare codice di basso livello, così un errore di segno non arriva mai in produzione.
Domande frequenti
Quanto costa?
È anche gratuita nel Suo browser su questa pagina, con esattamente lo stesso codice.
Quali operazioni sono supportate?
AND, OR, XOR, scorrimento a sinistra (shl), scorrimento aritmetico a destra (shr) e scorrimento logico a destra (ushr).
Quali intervalli di input sono accettati?
Entrambi gli operandi devono essere interi nell'intervallo con segno a 32 bit, da -2147483648 a 2147483647.
Come vengono trattati i numeri negativi negli scorrimenti?
shr copia il bit di segno, quindi i valori negativi restano negativi; ushr riempie con zeri, trattando il valore come senza segno. Entrambi seguono la semantica in complemento a due a 32 bit.
Cosa succede se scorro di più di 31 posizioni?
Vengono usati solo i cinque bit bassi della quantità di scorrimento, come in JavaScript e Java: scorrere di 33 è come scorrere di 1.
Viene memorizzato qualcosa?
No. Ogni richiesta viene calcolata e scartata; non c'è stato tra le chiamate.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/math/bitwise \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":60,"b":13}'const res = await fetch("https://api.kit.forhosting.com/math/bitwise", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 60,
"b": 13
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/bitwise",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 60,
"b": 13
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/bitwise", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":60,"b":13}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":60,"b":13}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/bitwise", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"a": 60,
"b": 13
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.bitwise",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
L'API della calcolatrice bitwise applica un'operazione bit a bit — AND, OR, XOR, scorrimento a sinistra, scorrimento aritmetico a destra o scorrimento logico a destra — a due interi a 32 bit e restituisce il risultato intero esatto.
Cosa fa davvero un'operazione bit a bit
Questo è esattamente il contratto di questo endpoint: Lei invia due interi e il nome di un'operazione, e riceve lo stesso intero che calcolerebbe il Suo codice, con entrambi gli operandi ripetuti affinché la risposta sia autodescrittiva in un log o in una traccia di audit.
Usare l'endpoint nella pratica
Lo stesso codice che gira sul nostro edge gira gratis nel Suo browser su questa pagina: può prototipare una maschera o verificare uno scorrimento a mano e pagare solo quando automatizza la chiamata — $0.002 a richiesta via API. Se un operando manca, non è un intero o è fuori dall'intervallo con segno a 32 bit, l'endpoint risponde con un errore invalid_input e la chiamata non viene addebitata, il che rende sicuro collegarlo direttamente a una pipeline che acquisisce dati non affidabili.
Casi di integrazione
Insegnare e fare debug delle rappresentazioni binarie
Mostri a studenti o colleghi esattamente come due interi si combinano bit per bit, con lo stesso risultato nel browser e nell'API.