مشکل سر عدد 1073741824 هست که وقتی عدد رو در متغیری از نوع Int64 مقدار دهی نمی کنم حاصل سرریز میشه ؛ همین
علتش اینه که اون ثابت عددی هنوز در محدوده Integer هست، پس کامپایلر آن را به عنوان Integer در نظر میگیره. وقتی در 3 ضرب میشه، از محدوده Integer خارج میشه. هر دو عامل محاسبه Integer هستند، پس نتیجه محاسبه هم Integer خواهد بود. بعد از انجام محاسبه (و Overflow شدن)، نتیجه به Int64 تبدیل میشه، چون شما دارید نتیجه را به یک متغیر Int64 نسبت میدید.

وقتی ثابت عددی را خودتان صراحتا از نوع Int64 تعریف می کنید، چون یکی از عامل های محاسبه Int64 هست، و یکی دیگه Integer، کامپایلر به طور خودکار نتیجه را به صورت Int64 برگشت میده؛ سپس این مقدار Int64 به متغیر KB که آن هم Int64 هست، اختصاص داده میشه.