Đó là sở thích trung thực, nếu vì một lý do nào đó, bạn đã bị đa nang và có 11 ngón tay hoặc thích đếm bằng ngón chân để bạn thích làm việc ở cơ sở 20, điều đó hoàn toàn phụ thuộc vào bạn. Nhưng nhận ra rằng trong một chủ đề phổ quát mà hầu hết chúng ta phải xử lý bit và byte hàng ngày sẽ thực sự bị đánh dấu nếu chúng ta nhận được một cái gì đó đang thao túng bit trong cơ sở 19.
LÝ DO CƠ SỞ x
Cơ sở 10 - Mô hình của tất cả nội dung của chúng tôi vì chúng tôi có 10 chữ số đếm (bàn chân kỳ lạ và có mùi nên chúng tôi không sử dụng chúng).
Cơ sở 2 - Máy tính sử dụng điều này cho các bit (bật / tắt) điều này có liên quan đến các mức điện áp có thể đọc được được truyền bởi các cổng / bóng bán dẫn / tụ điện.
Cơ sở 8 - Cũ, trở lại khi máy tính không quá lớn (hoặc quay lại khi chúng khôn ngoan về không gian) điều này tốt cho thứ này hoặc thứ khác (tôi không thích nó một chút)
Cơ sở 16 - Tốt để hiển thị các nút trên và dưới của một byte để thao tác bit. Điều này là siêu hữu ích trong thế giới nhúng / fpga / phần cứng.
CĂN CỨ BÌNH THƯỜNG TRONG MÁY TÍNH
Để đi theo sở thích, tôi có thể cho bạn biết chính xác mức độ "bật" của một màu trong giá trị RGB hex được cung cấp cho tôi, do đó, điều này có thể được biểu thị trong một int trong phần cứng và sau đó với một số thay đổi có thể được trả lại cho tôi dễ dàng, 1 màu phức tạp = 1 điểm dữ liệu rất tốt cho xử lý hình ảnh lớn với bộ nhớ hạn chế. So sánh với đại diện cơ sở 10, bạn có thể thêm tất cả chúng và lưu trữ chúng trong một số, nhưng số đó là gì, hoặc có thể R là thời gian 10000, G là 100 và B là không gian riêng của nó, đó là rất nhiều phép toán , thông thường các phép nhân có chi phí nhiều chu kỳ hơn một ca, vì vậy phần dữ liệu tiếp theo của bạn đã được xếp hàng trước khi bạn thực hiện xong phần cuối cùng của bạn đang được xử lý, rất tiếc, điều đó đã biến mất ngay bây giờ.
Đôi khi chỉ tốt hơn khi làm việc ở cơ sở 2, 8 hoặc 16. Với hầu hết các máy, nhân với 2 chỉ là một chút thay đổi, những máy này siêu tốc độ, tương tự với cách chia 2.
Để giải thích hơn nữa về ý tưởng của twiddling. Có một số lượng lớn thời gian khi làm việc trong môi trường nhúng mà tôi cần để truy cập vào một số mảng đèn, công tắc hoặc một số mục ánh xạ đăng ký khác.
Trong trường hợp này, việc gán toàn bộ char, byte hoặc int cho mỗi công tắc sẽ không hiệu quả và ngớ ngẩn, một công tắc hoặc đèn có 2 vị trí - bật và tắt - tại sao tôi lại chỉ định một cái gì đó có tới 256 vị trí, hoặc 2 ^ 16 vị trí, v.v ... Mỗi ánh sáng trong một mảng có thể là 1 bit phù hợp 8 hoặc 16 hoặc 32 hoặc 64 hoặc 128 (chiều rộng của kiểu dữ liệu của bạn) trên một từ / thanh ghi. Hiệu quả không gian là cần thiết và khá hoan nghênh.
Sử dụng bất cứ thứ gì có cơ sở 2 ^ n trong lập trình cho những việc như xử lý dữ liệu RGB, nhiều dữ liệu tín hiệu - GPS, âm thanh, ascii, v.v. - đơn giản hơn nhiều trong hex, nhị phân và bát phân vì đó là cách nó được thể hiện trong máy và người ta có thể dễ dàng nhận ra những gì đang được trình bày và cách thao tác nó.
SỬ DỤNG CƠ SỞ CHIẾN LƯỢC
Không có hiệu quả trừ khi bạn mã cho nó. Bạn muốn cơ sở 11, bạn phải thiết lập kiểu dữ liệu cho nó và quá tải bất kỳ toán tử nào để xử lý biểu diễn của nó cho người dùng. Tôi thấy không có lý do tại sao một hệ thống giữ 5 mục và chỉ cần giữ nhiều bội số của 5 mục sẽ cần phải được chuyển đổi thành năm mục toán. Và hơn nữa, bạn nên cầu nguyện rằng bất kỳ ai quyết định viết mã của họ cho cơ sở 271 đã ghi lại nó tốt hoặc bạn có thể dành nhiều thời gian để hiểu nó hơn là đáng để tạo ra cơ sở 271 vì tất cả các mục là bội số của 271.