Pertanyaan yang diberi tag «bit-shift»


3
Apa yang dimaksud dengan operator >>> = dalam C?
Diberikan oleh seorang rekan sebagai teka-teki, saya tidak tahu bagaimana sebenarnya program C ini mengkompilasi dan berjalan. Apa >>>=operator ini dan 1P1literal aneh ? Saya telah menguji di dentang dan GCC. Tidak ada peringatan dan hasilnya "???" #include <stdio.h> int main() { int a[2]={ 10, 1 }; while( a[ 0xFULL?'\0':-1:>>>=a<:!!0X.1P1 …

19
Apakah multiplikasi dan pembagian menggunakan operator shift di C sebenarnya lebih cepat?
Penggandaan dan pembagian dapat dicapai menggunakan operator bit, misalnya i*2 = i<<1 i*3 = (i<<1) + i; i*10 = (i<<3) + (i<<1) dan seterusnya. Apakah benar-benar lebih cepat menggunakan say (i<<3)+(i<<1)untuk dikalikan dengan 10 daripada menggunakan i*10secara langsung? Apakah ada input yang tidak dapat dikalikan atau dibagi dengan cara ini?





3
Mengapa 11010100 << 1 sama dengan 110101000, bukan 10101000?
Mengapa ketika saya mencoba menggeser bit untuk 11010100 2 , hasilnya adalah 110101000 2 , bukan 10101000 2 . int a = Integer.parseInt("11010100", 2) &lt;&lt; 1; Saya mencoba melakukan ini: int a = (byte)(Integer.parseInt("11010100", 2) &lt;&lt; 1); Tetapi jika nilai output lebih besar dari 128, semuanya menjadi minus, yang logis. …
40 java  bit-shift 
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.