Dalam C, operator bitwise boleh digunakan untuk melakukan pendaraban dan pembahagian, seperti yang digambarkan di bawah:
i*2 = i << 1 i*3 = (i << 1) + i; i*10 = (i << 3) + (i << 1)
Ini menimbulkan persoalan sama ada operasi bitwise sedemikian memang lebih pantas daripada pendaraban langsung atau bahagian.
Jawapan Ringkas: Tidak mungkin.
Jawapan Panjang:
Penyusun moden menggunakan pengoptimum yang cekap mengendalikan pendaraban berdasarkan seni bina pemproses. Menggunakan sintaks standard i*10 membolehkan pengkompil menentukan urutan pemasangan/kod mesin yang optimum untuk sistem anda. Malah mungkin arahan pendaraban itu sendiri mungkin dilaksanakan secara dalaman menggunakan operasi anjakan dan tambah.
Untuk kejelasan dan kebolehselenggaraan, disyorkan untuk menggunakan operator yang sesuai (anjakan untuk operasi bitwise, pendaraban untuk pendaraban) dan bukannya menggunakan operator bitwise untuk tujuan aritmetik. Kod anda akan lebih mudah difahami oleh orang lain dan berpotensi dioptimumkan oleh pengkompil juga.
Atas ialah kandungan terperinci Adakah Pendaraban dan Pembahagian Menggunakan Operator Shift dalam C Benar-Benar Lebih Cepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!