Ví dụ về các hạn chế trong CNTT do độ dài bit khác nhau theo thiết kế [đã đóng]


8

Tôi đang giảng dạy khóa học "Giới thiệu về lập trình" cho sinh viên năm thứ nhất và muốn tìm các ví dụ thú vị trong đó kích thước kiểu dữ liệu theo bit, được chọn theo thiết kế, dẫn đến một số hạn chế hoặc giá trị quan trọng nhất định.

Dưới đây là một số ví dụ:

  1. Do thực tế là nhà ngoại cảm Bell đã sử dụng mã 7 bit (sau này được chấp nhận là ASCII) cho đến nay chúng ta thường mã hóa các tệp đính kèm trong tin nhắn điện tử để chỉ chứa dữ liệu 7 bit.
  2. Giới hạn cổ điển của không gian địa chỉ 32 bit dẫn đến kích thước RAM tối đa 4Gb có sẵn cho các hệ thống 32 bit và kích thước tệp tối đa 4Gb trong FAT32.

Bạn có biết một số ví dụ thú vị khác về việc lựa chọn kiểu dữ liệu (và đặc biệt là độ dài nhị phân của nó) ảnh hưởng đến thế giới CNTT hiện đại như thế nào.

Đã thêm sau một số thảo luận trong các bình luận:

Tôi sẽ không dạy làm thế nào để vượt qua giới hạn. Tôi chỉ muốn họ biết rằng 1 byte có thể giữ các giá trị từ -127..0 .. + 127 o 0..255, 2 byte bao phủ phạm vi 0..65535, v.v. bằng cách chứng minh các ví dụ họ biết từ các nguồn khác, như mã hóa base64 đã đề cập ở trên, v.v. Chúng tôi chỉ đang tìm hiểu các kiểu dữ liệu cơ bản và tôi đang cố gắng tìm một tài liệu tham khảo tốt cho các loại này "lớn như thế nào".


Mục tiêu của việc thiết kế công nghệ "chứng minh tương lai vô hạn" là không thể đạt được. Thay vào đó, chúng tôi cố gắng thiết kế "mã tiết lộ ý định" và "dữ liệu tự mô tả" để thông tin bổ sung (ý định và mô tả) sẽ dễ dàng di chuyển mã và dữ liệu sang các định dạng trong tương lai của chúng.
rwong

Điều này là hoàn toàn rõ ràng với tôi và các sinh viên. Ý tưởng cơ bản ở đây là làm quen với thế giới 8 bit-pro-byte và để có được một số tổng quan về "bao nhiêu dữ liệu" các cấu trúc byte một, hai, bốn, v.v.
Alexander Galkin

Đề nghị của tôi là tìm kiếm các ví dụ hiện đại với độ tuổi của học sinh. Đó là, họ có thể không hoàn toàn đánh giá cao tình hình trong các công nghệ cũ, giá RAM, v.v. (Tại một thời điểm, mô-đun bộ nhớ 64KB là một
vỏ

Nếu bạn muốn dạy cách khắc phục các hạn chế, hãy dạy bổ sung nhị phân bằng carry, mã tiền tố (cần hiểu hướng dẫn máy), Unicode (một ví dụ về sơ đồ mã hóa) và mời học sinh thiết kế sơ đồ mã hóa ad-hoc cho vui vẻ. Chạm vào một chút "thông tin" và "entropy".
rwong

Có lẽ tôi đã đặt ra câu hỏi của mình theo một cách hơi mơ hồ: tôi sẽ không dạy cách vượt qua giới hạn. Tôi chỉ muốn họ biết rằng 1 byte có thể giữ các giá trị từ -127..0 .. + 127 o 0..255, 2 byte bao phủ phạm vi 0..65535, v.v. bằng cách chứng minh các ví dụ họ biết từ các nguồn khác, như mã hóa base64 đã đề cập ở trên, v.v. Chúng tôi chỉ đang tìm hiểu các kiểu dữ liệu cơ bản và tôi đang cố gắng tìm một tài liệu tham khảo tốt cho các loại này "lớn như thế nào".
Alexander Galkin

Câu trả lời:


9

IPv4 là một ví dụ rất hay trong đó kích thước thông số giới hạn gây ra sự cố rất tốn kém. 4,3 tỷ địa chỉ không còn đủ nữa. Bây giờ các ISP trên toàn thế giới đang triển khai IPv6 một cách rõ ràng với không gian địa chỉ 128 bit, chuyển thành địa chỉ cho mọi nguyên tử trong cơ thể bạn hoặc một cái gì đó tương tự.


1
Vâng - Hãy xem xét điều này: Nếu có 1 triệu địa chỉ được phân bổ mỗi picosecond, sẽ mất 10783127828133,15 năm để tiêu thụ tất cả. Có 2 ^ 128 địa chỉ khả dụng với IPV6. Trong một giây, có 10 ^ 6/10 ^ -12 địa chỉ được phân bổ (1 x 10 ^ 18). Vậy (2 ^ 128) / ((10 ^ 6) / (10 ^ -12)) = 340282366920938463463.37 giây. Giả sử có 31.556.926 giây trong một năm (theo google.com), điều này mang lại 10783127828133,15 năm. Vì cái này cũ hơn trái đất, chúng ta sẽ ổn thôi.
Jack

@Jack vấn đề Y11T? :)
đúng vào

@Jack: cho đến khi chúng tôi không, chúng tôi sẽ mất rất nhiều địa chỉ do phân đoạn mạng.
Wyatt Barnett

1

Vấn đề năm 2000 cũng tương tự, ngoại trừ việc mọi người sử dụng số thập phân thay vì nhị phân và chỉ mã hóa hai chữ số cuối. Đây có thể là một ví dụ hữu ích nếu giải thích cho một người có ít kinh nghiệm về nhị phân.

FAT12 / FAT16 / FAT32 đã được điều chỉnh để phù hợp cho việc lưu trữ lớn hơn và lớn hơn.

TeX có một số thuộc tính thú vị khi biểu thị kích thước (từ The TeXBook):

TEX đại diện cho tất cả các kích thước bên trong dưới dạng bội số nguyên của các đơn vị nhỏ gọi là sp. Vì bước sóng của ánh sáng khả kiến ​​là khoảng 100 sp, sai số làm tròn của một vài sp không tạo ra sự khác biệt đối với mắt. [...]

TEX sẽ không xử lý các kích thước có giá trị tuyệt đối là 2 ^ 30 sp trở lên. Nói cách khác, kích thước pháp lý tối đa là ít hơn 16384 pt. Đây là khoảng cách khoảng 18.892 feet (5.7583 mét), vì vậy nó sẽ không làm ảnh hưởng đến phong cách của bạn.

(pt là một đơn vị đánh máy xấp xỉ bằng 1/72 inch)


0

Microsoft Excel - cố gắng vẽ biểu đồ hơn 32K mục. Có một trường 16 bit đã ký ở đó ở đâu đó. (mặc dù họ làm tròn giới hạn xuống tới 32000 thậm chí vì một số lý do).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.