Quyidagi jadvalda Java tilida ishlatiladigan bitli operatsiyalar keltirilgan


Bit-bit operatsiyalarining amaliy qo'llanilishi


Download 62.5 Kb.
bet3/3
Sana30.04.2023
Hajmi62.5 Kb.
#1417099
1   2   3
Bog'liq
Bit operatsiyalar

Bit-bit operatsiyalarining amaliy qo'llanilishi

Bit-bit operatsiyalari juda keng amaliy qo'llanmalarga ega, ba'zi holatlarni ko'rib chiqing:

Raqam pariteti

x & 1 raqamning tengligini tekshiradi. Agar raqam juft bo'lsa-natija 0, g'alati-1.

Raqamni ikkiga bo'lish:

x<<1 2 ga ko'paytirish.

x>>1 har qanday qoldiqni tashlab, ikkiga bo'ling.

Raqamni shifrlash

XOR operatsiyasi bir xil bit qatoriga ikki marta qo'llanilganda asl qiymatini tiklaydi. Bu tarmoq orqali uzatishda ma'lumotlarni shifrlashda ishlatilishi mumkin:


C = A ^ B
A = C ^ B 

Xabarda 560 raqamini yuborish kerakligini tasavvur qiling - bank kartasidan PIN-kod. Agar tajovuzkor xabarni ushlasa, u PIN-kodni bilib oladi va undan foydalanishi mumkin. PIN-kodni faqat jo'natuvchi va qabul qiluvchi bilishi mumkin. Buning oldini olish uchun biz biron bir raqam-niqobni o'ylab topamiz va uni oluvchiga oldindan aytib beramiz. PIN - kodni yuborishdan oldin uni shifrlaymiz-biz bitli XOR operatsiyasini qo'llaymiz: message^XOR Va natijani yuboring. Agar tajovuzkor xabarni ushlasa, uni qanday hal qilishni bilmaydi. Qabul qiluvchi xabarni oladi, mavjud niqob yordamida PIN-kodni parolini ochadi: message^maska.

Quyidagi kod ushbu misolni ko'rsatadi:


public class Bitwise3 {
public static void main(String[] args) {
int message = 560;
int maska = 67;
int codedMessage = message ^ maska;
int receivedMesssage = codedMessage ^ maska;
System.out.println("message = " + message);
System.out.println("message = " + Integer.toBinaryString(message));
System.out.println("codedMessage = " + codedMessage);
System.out.println("codedMessage = " + Integer.toBinaryString(codedMessage));
System.out.println("receivedMesssage = " + receivedMesssage);
System.out.println("receivedMesssage = " + Integer.toBinaryString(receivedMesssage));
}
}

Niqobni qo'llash

Niqob sizga ketma-ketlikda faqat ma'lum bitlarning qiymatlarini olish imkonini beradi. Masalan, bizda 00100100 niqobi bor. Bu bizga ketma-ketlikdan faqat unga o'rnatilgan bitlarni olish imkonini beradi. Bunday holda, bu 3 va 7-chi. Buning uchun bizning niqobimiz va tanlangan raqamimiz bilan AND ni bajarish kifoya:


' 001010101
& 000100100
----------------
000000100
'
Download 62.5 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling