Tự chuyển kiểu trong C++

Mình đọc 1 số nguồn có nói C++ tự chuyển đổi kiểu khi gán phép tính trong C++.

Ví dụ: mình có:

int a;
cin>>a;
long long b;
b=a*a;

thì khi mình nhập giới hạn a vượt quá int thì kết quả bị sai, mình đã thử sửa:

b=(long long)a*a;

nhưng kết quả vẫn sai, cho mình hỏi vậy sự thật là sao ạ?

Nếu casting sai thì chắc kiểu long long ở hệ thống của bạn không hỗ trợ 64bit? Hoặc bạn đang chạy file cũ O_O

Chứ mình test theo code bạn đúng rùi

5 Likes

Vậy thì bình thường nếu không bỏ long long thì nó không tự cast đúng không bạn?

Đầu tiên bạn phải tìm sizeof(int) và sizeof(long long) trên máy :smiley: còn nhập quá int thì ko thể nào đúng :slight_smile:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?