01/10/2018, 15:36
So sánh số có dấu và số không dấu
Cho mình hỏi tại sao khi so sánh số -1 và sô 1 trong C++, kết quả lại cho ra số -1 lớn hơn vậy ạ???
Bài liên quan
Cho mình hỏi tại sao khi so sánh số -1 và sô 1 trong C++, kết quả lại cho ra số -1 lớn hơn vậy ạ???
Kết quả vẫn ra đúng mà bạn?
GDB online Debugger | Code, Compile, Run, Debug online C, C++
Online GDB is online ide with compiler and debugger for C/C++. Code, Compiler, Run, Debug Share code nippets.
Bạn chạy thử code này nè:
Nếu mình đúng thì 1 thằng size_t, 1 thằng int nên không so sánh được với nhau
Bạn cast thằng s.length() về kiểu int rồi so sánh thử
Mình nghĩ là nó liên quan đến so sánh bit
Lần sau bạn post đoạn code đang thắc mắc ngay từ đầu nhé
https://wiki.sei.cmu.edu/confluence/display/c/INT02-C.+Understand+integer+conversion+rules
Mà
size_t
chắc chắn là không dấu nên-1 > 1
làTRUE
.Mình xin lỗi, mình sẽ rút kinh nghiệm ở lần sau. Nhưng cho mình hỏi lại điều đó có nghĩa là -1 -> (unsigned int) 4294967294 > 1 đúng không
x86 thì đổi -1 về 4294967295 bạn vì -1 viết là 32 bit 1 trong hệ bù 2.
Sorry bạn mình nhầm lẫn tí.