据我以前的认识,1KB 就是 1024B,1MB 就是 1024KB,等等,且 KB 与 MB 等是对较大空间的再好不过的表达方式了。可在 Dev-C++ 编译器中(如下图)和我今年曾参加的 CSP 比赛中,程序所占空间都被表示成了 x KiB 或 x MiB(x 是正实数)的形式:

我其实很早就发现了这个规律,但是我想:"KB"与"KiB","MB"与"MiB"等不就分别差了一个小写字母 i 吗,应该意义一样吧!可今天我闲暇之余查询百度百科时,却发现:“Ki 与 K 是两个不同的数学单位,它们的换算关系是:1Ki=1024,1K=1000。”
百度百科中还附带了 M,Mi 等的区别,它们说明了一个事实:有 i 的单位表示 1024n,反之则表示 1000n(n 是正整数)!
真是“不查不知道,一查吓一跳”呀!基于上述查询结果,我目前可以确定 1KiB,1MiB 等的确可以分别表示 1024B,1024KiB 等。不过 1KB,1MB 等代表的意思到底是哪种?倘若这些没带 i 的单位能同时表示上述两种意思,那么例如洛谷题目上的空间限制 256.00MB 等又表示哪种意思?