K是KB的简写,都是说文件大小的!1T=1024G;1G=1024M;1M=1024K;1K=1024byte 实际上都是少写了一个B,也就是Byte! K是数值;而B是字节,KB是单位 KB是存储空间大小的单位,1KB=1024B=1024*8bit,1024KB=1MB,1024MB=1GB b=bit 表示“位” ,B=Byte 表示“字节”,1 Byte=8 bit --bit (binary digit) 位 位是计算机数据中最小单元。位的值只会是0或1。虽然计算机也提供对位的判断和操作,但是计算机指令一般以字节为单位。在大多数的计算机系统中,八位是一个字节。一位的值通常以存储电容是否带电来衡量。
.hex文件中包含有实际代码的存储地址、帧长度、类型、校验等,而这些东西在你烧录程序时并不会烧录进单片机,这些东西只是为烧录软件指定程序要烧录进单片机的地址,以及保证要烧录数据的完整性。所以实际烧录进单片机的数据要远远小于.hex中的数据。比如,我的一个.hex的文件大小为52KB,我烧录进单片机,但实际上占用的单片机的存储空间只有20.5KB。 所以,你的单片机为8K大小,.hex文件是可以远远大于8KB的。 要查询你的程序占用了多大的空间有两个办法,一个是利用编译器查看编译后可执行文件的大小,比如keil c就很容易查看,在build窗口中,编译后有下列类似语句:Program Size: Code=5060 RO-data=12 RW-data=40 ZI-data=1792 其中的Code说明我的代码大小为5060个字节,不到5KB,这个时候我的.hex文件大小是15KB。 另一个方法是将.hex文件转成.bin文件,bin文件是你实际产生的可执行代码数据。网上有不少工具可以转换的。