Sự khác biệt giữa chữ ký và không có chữ ký Sự khác nhau giữa

Anonim

Ký kết vs Không được ký

Hệ thống số của chúng tôi mở rộng từ vô cực tiêu cực đến cực vô cực với zero ở giữa. Tuy nhiên, trong lập trình, về cơ bản có hai loại số; chữ ký và chữ ký. Sự khác biệt chính giữa một chữ ký và số unsigned là, tốt, khả năng sử dụng số âm. Số không được chỉ định chỉ có thể có giá trị bằng không hoặc lớn hơn. Ngược lại, con số có ký tự là tự nhiên hơn với một phạm vi bao gồm số âm với số dương.

Việc tạo ra các chữ ký và unsigned đã được nhắc nhở bởi sự cần thiết phải đại diện cho các giá trị số với các nguồn lực 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ố unsigned, 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ý hiệu nghĩa là bạn đã mất một chút để đại diện cho dấu hiệu. Với 7 bit, bạn có tối đa 128 kết hợp, vì vậy phạm vi của bạn với số ký hiệu 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 tiên của tính toán, sử dụng số unsigned là cách để đi.

Khi sử dụng các số có chữ ký và không dấu trong lập trình, thì an toàn hơn chỉ cần sử dụng một hoặc khác là đồng thời sử dụng cả hai có thể gây ra vấn đề. Đầu tiên là khi bạn so sánh một unsigned với một số chữ 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ó anyway. 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ố unsigned vào một số đã ký kết. Nếu giá trị của số unsigned lớn hơn giá trị lớn nhất của số ký hiệu, điều này sẽ dẫn đến lỗi.

Khi công nghệ phát triển, nguồn lực ngày càng phong phú, và việc sử dụng các con số không có chữ ký ngày càng ít đi. Để minh hoạ điều này, hãy nhớ rằng một số dài 32 bit có thể có giá trị ký kết tối đa là 2 triệu hoặc 4 triệu nếu nó không có chữ ký. Khi bạn chuyển sang 64 bit, sự khác biệt là giữa 90 và 180 quintillion; giá trị hiếm khi được sử dụng nếu ở tất cả trong các chương trình thông thường.

Tóm tắt:

1. Số Unsigned chỉ bao gồm số không và số dương trong khi số ký kết bao gồm số âm.

2. Số đã ký có một nửa giá trị số không ký.

3. Trộn số có chữ ký và không dấu có thể gây ra vấn đề.

4. Sử dụng chữ ký hoặc unsigned số có ít mang trong các ứng dụng hiện đại.