ابتدا ضرب x در y انجام میشه که چون دوتاشون int هستن حاصل هم به صورت int در نظر گرفته میشه که یه سرریز رو به وجود میاره. حالا این سرریز به long int z منتسب میشه که باید یک تبدیل انجام بشه.
بنابراین تبدیل از مقدار سرریز int به long int انجام میشه نه از مقدار واقعی ضرب.
برای جلوگیری از سرریز باید تبدیل قبل از انتساب انجام بشه
long int z = z * (long int)b;
هیچ پژوهش انسانی نمیتواند ادعای علمی بودن داشته باشد، مگر اینکه از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)