Assuming you mean in-memory requirements, the minimum amount of memory needed would be 50 * 50 * 3 (width * height * numComponents
), or 7500 bytes for RGB. However, it might be faster to pad each scanline, for example to an even number of 32 bit entities, making the the actual requirement higher. Also, it may be better for the graphics card to have the values in ARGB format, in which case it would be 50 * 50 * 4 (= 10000).
It depends on the compression used in the BMP file, but if there's no compression I think the minimum would 54 + 50 * 50 * 4, or 10054 bytes, as BMPs are typically stored as 32 bits per pixel. Note that BMP files have different sizes of valid headers, can store indexed (palette) images, and also 16 bit images so the above will hold only for normal, uncompressed 32 bit/pixel "true color" BMPs.
Read the specification, and you should understand how it works. To see the contents of an actual file sample, open it in a hex viewer/editor or other tool that allows you to see the binary contents of the file.
Hexadecimal is just a different representation of the values, as opposed to decimal or octal. If the byte value is 255
decimal, it will be FF
in hexadecimal, for example.