Tôi đã gán giá trị bổ sung trong biến chưa ký.Tại sao chương trình C này xuất ra một số âm?
Sau đó, tại sao chương trình C này xuất ra một số âm?
#include<stdio.h>
#include<conio.h>
int main()
{
unsigned int Value = 4; /* 4 = 0000 0000 0000 0100 */
unsigned int result = 0;
result = ~ Value; /* -5 = 1111 1111 1111 1011 */
printf("result = %d", result); /* -5 */
getch();
return 0;
}
Câu hỏi của bạn nên là: "Tại sao trình biên dịch không phát ra cảnh báo khi tôi biên dịch mã này?". Câu trả lời là: "Bật các cảnh báo trên trình biên dịch. (Ví dụ: -Wall)" –