30/09/2018, 20:00
Giới hạn của unsigned long long?
Cho mình hỏi thì theo như hình thì unsigned long long sẽ có giới hạn là 14757395258967641292 nhưng khi mình cho 2^278 để vượi khỏi giới hạn đó thì đáng lẽ nó phải trả về 0 chứ sao lại là 9223372036854775808
Bài liên quan
cái này người ta gọi là chàn bộ nhớ
tại sao nó phải trả về 0?
coi lại kiểu trả về của hàm pow() là kiểu gì, có phải kiểu số nguyên ko…
với lại 14757395258967641292 đâu phải là giới hạn của ull, giới hạn của nó phải là 2^64-1. Còn số này là số mà debugger của VS nó gán cho y thôi.
Khi dùng visual studio bạn nên dùng các kiểu dữ liệu số nguyên, số nguyên không dấu dưới dạng khai báo này:
Bài viết về viết khuyên dùng kiểu dữ liệu như trên mình đọc ở đâu quên mất, đại khái là nên khai báo theo những định nghĩa của thư viện stdint.h: https://msinttypes.googlecode.com/svn/trunk/stdint.h