Đã ký so với chưa ký
Hệ thống số của chúng tôi trải dài từ vô cực âm đến vô cực dương với số 0 ở giữa. Tuy nhiên, trong lập trình, về cơ bản có hai loại số; ký và không dấu. Sự khác biệt chính giữa một số đã ký và một số không dấu là, khả năng sử dụng số âm. Số chưa ký chỉ có thể có giá trị bằng 0 hoặc lớn hơn. Ngược lại, số đã ký tự nhiên hơn với phạm vi bao gồm số âm đến số dương.
Việc tạo ra các số đã ký và không dấu được nhắc nhở bởi sự cần thiết phải biểu diễn các giá trị số với tài nguyên rất hạn chế. Ví dụ: sử dụng 8 bit, bạn chỉ có tổng cộng 256 kết hợp. Với một số chưa được ký, điều đó có nghĩa là bất kỳ giá trị nào trong khoảng từ 0 đến 255. Ngược lại, có một số được ký có nghĩa là bạn đã mất một chút để thể hiện dấu hiệu. Với 7 bit, bạn có tối đa 128 kết hợp, do đó, phạm vi của bạn với số được ký 8 bit là từ -128 đến 127. Vì vậy, nếu bạn có tài nguyên hạn chế, như trong những ngày đầu của máy tính, sử dụng số không dấu là cách tốt nhất.
Khi sử dụng các số đã ký và không dấu trong lập trình, sẽ an toàn hơn nếu chỉ sử dụng số này hoặc số kia vì sử dụng đồng thời cả hai có thể dẫn đến các vấn đề. Đầu tiên là khi bạn so sánh một số không dấu với một số đã ký. Điều này thường dẫn đến cảnh báo, nhưng trình biên dịch có thể biên dịch nó bằng mọi cách. Vấn đề thứ hai và nghiêm trọng hơn là khi bạn gán nội dung của một số chưa ký cho một số đã ký. Nếu giá trị của số không dấu lớn hơn giá trị tối đa của số đã ký, điều này sẽ dẫn đến lỗi.
Khi công nghệ phát triển, tài nguyên đã trở nên phong phú hơn và việc sử dụng các số không dấu ngày càng trở nên ít cần thiết hơn. Để minh họa điều này, hãy nhớ rằng một số dài 32 bit có thể có giá trị được ký tối đa là 2 triệu hoặc 4 triệu nếu không được ký. Khi bạn chuyển sang 64 bit, sự khác biệt là từ 90 đến 180 triệu; các giá trị hiếm khi được sử dụng nếu có trong tất cả các chương trình chung.
Tóm lược:
Số được gán chỉ bao gồm số 0 và số dương trong khi số đã ký bao gồm số âm.
Số 2.Sign có một nửa giá trị tối đa của số không dấu.
3. Trộn các số đã ký và không dấu có thể dẫn đến sự cố.
4.Sử dụng số đã ký hoặc không dấu có ít ảnh hưởng trong các ứng dụng hiện đại.