Sizes in bytes and Abbreviations

Modified from php.net I think, added some abbreviations, as well as used high precision math

2 or 2 B==2
2048 or 2 KB==2048
2097152 or 2 MB==2097152
2147483648 or 2 GB==2147483648
2199023255552 or 2 TB==2199023255552
2251799813685248 or 2 PB==2251799813685248
2305843009213693952 or 2 EB==2305843009213693952
2361183241434822606848 or 2 ZB==2361183241434822606848
2417851639229258349412352 or 2 YB==2417851639229258349412352
2475880078570760549798248448 or 2 RB==2475880078570760549798248448
2535301200456458802993406410752 or 2 QB==2535301200456458802993406410752