0
我有這樣的代碼,從寫入和寫入EEPROM爲4位數字。 For Ex: 2356
EEPROM讀取和寫入5位
代碼;
void WritePassToEEPROM(uint16_t pass)
{
EEPROMWrite(0000,(pass%100));
EEPROMWrite(0001,(pass/100));
}
uint16_t ReadPassFromEEPROM()
{
return (EEPROMRead(0001)*100 + EEPROMRead(0000));
}
的Write_Pass_To_EEPROM()
函數寫入2個地址0000
和0001
。對於2356
,2356%100
是56
和2356/100
是23
。所以,在地址0000
它將是56並且在地址0001
它將是23
。 雖然閱讀EEPROM_Read(0000)
將返回34
和EEPROM_Read(0001)*100
將返回2300
。 2300 + 56
是2356
。
但是,如果我需要寫5
數字號碼像65238
我該怎麼辦。
爲什麼要浪費每個字節的61%? –
爲什麼使用* decimal *算術?您知道,16位(兩個字節)作爲無符號整數可以包含'0'和'65535'(含)之間的值。 –
如果他想存儲諸如'99999'(16位太少,32位太多)的東西,那就去24位或者其他東西......或者他可能需要處理一些舊的硬件/軟件與BCD一起使用? – 3442