Nó không.
Bộ kết thúc chuỗi là một byte chứa tất cả 0 bit.
Số nguyên không dấu là hai hoặc bốn byte (tùy thuộc vào môi trường của bạn) mỗi byte chứa tất cả 0 bit.
Hai mục được lưu trữ tại các địa chỉ khác nhau. Mã được biên dịch của bạn thực hiện các hoạt động phù hợp với các chuỗi trên vị trí cũ và các hoạt động phù hợp với các số nhị phân không dấu ở sau. (Trừ khi bạn có lỗi trong mã của mình hoặc một số mã thông minh nguy hiểm!)
Nhưng tất cả các byte này trông giống với CPU. Dữ liệu trong bộ nhớ (trong hầu hết các kiến trúc tập lệnh phổ biến hiện nay) không có bất kỳ loại nào được liên kết với nó. Đó là một sự trừu tượng chỉ tồn tại trong mã nguồn và có nghĩa là một cái gì đó chỉ dành cho trình biên dịch.
Chỉnh sửa thêm: Như một ví dụ: Hoàn toàn có thể, thậm chí phổ biến, để thực hiện số học trên các byte tạo thành một chuỗi. Nếu bạn có một chuỗi các ký tự ASCII 8 bit, bạn có thể chuyển đổi các chữ cái trong chuỗi giữa chữ hoa và chữ thường bằng cách thêm hoặc trừ 32 (số thập phân). Hoặc nếu bạn đang dịch sang mã ký tự khác, bạn có thể sử dụng các giá trị của chúng làm chỉ mục thành một mảng có các phần tử cung cấp mã hóa bit tương đương trong mã khác.
Đối với CPU, các ký tự thực sự là các số nguyên cực ngắn. (tám bit mỗi bit thay vì 16, 32 hoặc 64.) Đối với con người chúng ta, giá trị của chúng tình cờ được liên kết với các ký tự có thể đọc được, nhưng CPU không biết điều đó. Nó cũng không biết gì về quy ước "C" của "null byte kết thúc một chuỗi", (như nhiều người đã lưu ý trong các câu trả lời và nhận xét khác, có những môi trường lập trình trong đó quy ước đó không được sử dụng) .
Để chắc chắn, có một số hướng dẫn trong x86 / x64 có xu hướng được sử dụng rất nhiều với các chuỗi - ví dụ tiền tố REP - nhưng bạn cũng có thể sử dụng chúng trên một mảng số nguyên, nếu chúng đạt được kết quả mong muốn.