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

Khôi Trần viết 22:12 ngày 30/09/2018

cái này người ta gọi là chàn bộ nhớ

viết 22:12 ngày 30/09/2018

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.

... viết 22:04 ngày 30/09/2018

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:

uint8_t, uint16_t, uint32_t, uint64_t

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

Bài liên quan
0