A kilobyte is 1024 bytes. The number 1024 was chosen because it is close to 1000 (the meaning of the SI prefix kilo), and is a power of two (210). This is the definition used by computer programmers, computer scientists, and by computer programs.
Telecommunications engineers and storage manufacturers define the kilobyte as 1000 bytes, based on the SI prefix. This is also what most people (before exposure to computers) think a kilobyte is. This leads to some confusion when the novice purchases computer equipment, as the computer will report a smaller amount than the manufacturer stated.
The International Electrotechnical Commission has defined the kilobyte as 1000 bytes, and have 1024 bytes called a a kibibyte -- a term which very few have adopted.
See integral data type.