Understanding addressing and size in memory map
You have an off by one error in your calculations and also kilobyte is not 1000 bytes but 1024. The device really has 256 kilobytes of memory. 2^18 is 262144 bytes and 262144 / 1024 is exactly 256 kilobytes. A kilobyte is 2^10 = 1024 bytes.