Binary prefix converter
1 MiB is 1.048576 MB, not 1 MB: the converter keeps kibi, mebi and gibi apart from kilo, mega and giga with exact powers of two and ten, so a disk label and a file manager finally agree. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Numeric quantity to convert
- 1
- From
- MiB
- To
- MB
- Result
- 1.048576
- From label
- mebibyte (2^20)
- To label
- megabyte (10^6)
- From family
- binary
Storage vendors, operating systems, and network tools still mix two prefix systems that look alike but are not the same. A mebibyte is two to the twentieth base units, while a megabyte is one million; a gibibyte is two to the thirtieth, while a gigabyte is one billion. That gap is why a disk marketed as one terabyte shows fewer tebibytes in a file manager, and why capacity planning spreadsheets need a single honest conversion path. This capability converts quantities between IEC 80000-13 binary prefixes—kibi, mebi, gibi, tebi, pebi, exbi—and SI decimal prefixes—kilo, mega, giga, tera, peta, exa—using exact powers of two and ten, with common byte labels such as KiB, MiB, GiB, kB, MB, and GB.
Binary IEC prefixes versus decimal SI prefixes
Binary prefixes follow IEC 80000-13 and grow by powers of two. One kibibyte is exactly one thousand twenty-four base units, one mebibyte is two to the twentieth, one gibibyte is two to the thirtieth, one tebibyte is two to the fortieth, one pebibyte is two to the fiftieth, and one exbibyte is two to the sixtieth.
Decimal SI prefixes grow by powers of ten: one kilobyte is one thousand, one megabyte is one million, one gigabyte is one billion, one terabyte is one trillion, one petabyte is one quadrillion, and one exabyte is one quintillion base units under the same intermediate. The converter also accepts the unprefixed base unit B so you can turn a raw count into any labeled prefix or reverse a label back to an unprefixed quantity.
Where the converter helps day to day
Use the free in-browser binary prefix converter when you need a quick MiB-to-MB, GiB-to-GB, KiB-to-kB, or tebibyte-to-terabyte check while reading a cloud invoice, a disk label, a memory dump size, a container limit, or a homework problem about IEC versus SI. Open the page, enter the number and units, and copy the result without installing a spreadsheet, a unit library, or a desktop calculator pack. Source inputs follow the same retention rules as other KIT parse items, and results are safe to cache because the algorithm is fully deterministic.
Authors shipping mobile apps or chatbots can map the result, factor, and formula fields directly into cards that show both the number and the conversion path operators expect when reconciling marketing TB with OS TiB.
What you can do with it
Disk and cloud capacity reconciliation
Convert vendor TB/GB labels to TiB/GiB so finance and ops dashboards match what operating systems and object stores report.
Memory and container quotas
Translate MiB limits from Kubernetes or Docker into MB for billing tools, or the reverse, with exact 2^n and 10^n factors.
FAQ
What is the difference between MiB and MB?
MiB (mebibyte) is the IEC binary prefix 2^20 = 1,048,576. MB (megabyte) is the SI decimal prefix 10^6 = 1,000,000. This converter maps either way with exact factors.
How do I convert 1 GiB to GB?
The result is 1.073741824 GB because one gibibyte is 2^30 base units and one gigabyte is 10^9.
Does KB mean 1024 or 1000 here?
Decimal kB/KB always means 1000 (SI kilo). For 1024 use KiB (kibibyte). Ambiguous informal "KB as 1024" is not assumed.
What happens if I send an unknown unit?
The message names the field and lists supported binary IEC and decimal SI prefixes; validation failures are not charged.
Is the binary prefix converter free?
The browser tool runs free on your device.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/conv/binary-prefix \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":1,"from":"MiB","to":"MB"}'const res = await fetch("https://api.kit.forhosting.com/conv/binary-prefix", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 1,
"from": "MiB",
"to": "MB"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/binary-prefix",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 1,
"from": "MiB",
"to": "MB"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/binary-prefix", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":1,"from":"MiB","to":"MB"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":1,"from":"MiB","to":"MB"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/binary-prefix", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"value": 1,
"from": "MiB",
"to": "MB"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.binary_prefix",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Binary IEC prefixes versus decimal SI prefixes
Friendly aliases such as kibi, mebi, gibi, kilo, mega, giga, kibibyte, mebibyte, gibibyte, kilobyte, megabyte, and gigabyte normalize to the same canonical codes as KiB, MiB, GiB, kB, MB, and GB, so forms and APIs can pass either marketing names or short symbols. Because every request multiplies by the source factor and divides by the target factor through one shared base, converting A to B and B to A is consistent up to twelve-decimal rounding, and there is no pairwise matrix that can drift out of sync between releases. This product deliberately treats decimal kB and MB as one thousand and one million—not as informal binary thousand twenty-four—so engineers who need the binary interpretation must send KiB or MiB explicitly. That honesty is the reason a dedicated binary-prefix converter exists beside general unit tools: the search intent is to resolve the kibi-versus-kilo confusion with published IEC and SI factors, not to hide it behind a single ambiguous KB token.
Request shape, response fields, and unknown-unit errors
The error message names the bad field and lists the supported binary and decimal set so clients can correct forms without guessing. Negative values are allowed when you need signed capacity deltas in provisioning pipelines; zero converts cleanly to zero in every target unit. Send a JSON body with three required fields: value as a finite number, from as the source unit string, and to as the target unit string. Aliases amount and quantity are accepted for value; unit_from and source for from; unit_to and target for to. On success the response echoes the canonical from and to codes, human-readable from_label and to_label strings, from_family and to_family tags that mark each side as binary, decimal, or base, the converted result, the intermediate base quantity, the dimensionless factor from source to target, the exact from_factor and to_factor multipliers, a short formula line suitable for UI display, the method tag iec80000_si_prefix, and the fixed list of units_supported. Missing value, non-finite numbers such as NaN or Infinity, missing unit fields, and any token that does not map to a supported prefix fail with invalid_input and are not charged after the engine rejects the request. Identical inputs always yield identical JSON because the path is pure arithmetic with no randomness, no remote lookup, and no dependence on the wall clock, which makes the endpoint safe to pin in continuous-integration goldens and SDK contract tests. Extreme pairs such as exbibytes to kilobytes share the same code path, so magnitude alone does not change the algorithm as long as IEEE double precision can represent the intermediate base product.
Browser use, API pricing, and everyday workflows
Switch to the prepaid API when a storage dashboard, Kubernetes quota UI, backup planner, ISP usage portal, digital-forensics notebook, or capacity-forecasting service must convert prefixes at scale under a stable KIT contract at $0.002 per successful item; validation failures that raise invalid_input do not consume balance after rejection. Pair this endpoint with a data-rate converter when a product pipeline also needs bits-per-second families, or call it alone when search traffic is specifically for binary versus decimal storage prefixes—kibi, mebi, gibi, kilo, mega, giga, and their byte labels—rather than a general unit switchboard.
Integration use cases
Education and documentation
Show students and runbooks why one gibibyte is not one gigabyte, with deterministic JSON for quizzes and CI fixtures.