Rumah  >  Artikel  >  hujung hadapan web  >  js pelaksanaan prinsip penyongsangan bit tertentu dan kemahiran examples_javascript

js pelaksanaan prinsip penyongsangan bit tertentu dan kemahiran examples_javascript

WBOY
WBOYasal
2016-05-16 16:42:551292semak imbas

Apabila saya pergi ke Huawei untuk temu duga, saya tidak begitu bersedia untuk bertanya atau menyemak proses temu duga dengan jelas. yang sebenarnya agak tidak bersedia. Penulis ialah seorang jurutera Web Java yang mahir di bahagian hadapan, dan pengetahuan pengaturcaraan peringkat rendah asas telah lama tidak dikenali. Soalan ujian berasaskan komputer menemui soalan operasi bit ini Ia dikatakan sangat mudah dan prinsipnya sangat jelas kepada saya Namun, kerana saya tidak melakukan operasi bit selama bertahun-tahun, dan saya tidak pernah melakukan operasi bit Java. hasilnya sungguh memalukan...

Had masa ujian komputer adalah satu jam Bahasa boleh menjadi C atau bahasa skrip apa lagi penulis mengambil masa hampir tiga jam untuk menyelesaikan soalan dalam Java. Saya akan menggunakan JS apabila Saya kembali. Saya telah melaksanakan semula versi mudah dan menyiarkannya hari ini.

Soalannya ialah: masukkan secara kitaran setiap kumpulan dua nombor hex dan n (0<=n<31 Hex ialah nombor perenambelasan Apa yang perlu kita lakukan ialah menyongsangkan digit ke-n hex, dan kemudian Output the hasil yang sepadan dalam format perenambelasan.

Saya tidak akan menerangkan secara terperinci proses yang mengambil masa lebih daripada dua jam Berikut ialah pelaksanaan js, yang merupakan pengetahuan asas yang sangat mudah tentang operasi bit. Prinsipnya mudah, cuma alihkan 1 ke kiri dengan n bit, dan kemudian XOR dengan nombor asal:

function bitOper(hex, n){ 
var num = parseInt(hex); 
num ^= (1<<n); 
return num.toString(16); 
} 
console.log(bitOper(0x1234, 3)); //123c

Disebabkan oleh pengehadan 32-bit jenis integer js, kod contoh di atas hanya menyokong kes mudah n<31 (bit 31 ialah bit tanda).

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn