Jika suatu perangkat keras tidak mendukung operasi modulus atau divisi, dibutuhkan lebih banyak siklus CPU untuk mensimulasikan modulus / divisi dengan perangkat lunak. Apakah ada cara yang lebih cepat untuk menghitung pembagian dan modulus jika operan adalah 10?
Dalam proyek saya, saya sering perlu menghitung bilangan bulat bilangan bulat 10. Secara khusus, saya sedang mengerjakan PIC16F dan perlu menunjukkan angka pada LCD. Ada 4 digit untuk didukung, jadi ada 4 panggilan ke modulus dan fungsi pembagian (implementasi perangkat lunak). Yaitu, seperti berikut:
digit = number % 10; // call to an expensive function
number /= 10; // call to an expensive function
somehow_lit_segments();
digit = number % 10; // call to an expensive function
number /= 10; // call to an expensive function
somehow_lit_segments();
digit = number % 10; // call to an expensive function
number /= 10; // call to an expensive function
somehow_lit_segments();
digit = number % 10; // call to an expensive function
number /= 10; // call to an expensive function
somehow_lit_segments();
Ada area lain yang menggunakan kode serupa.