22-bob: Bit bilan manipulyatsiya


-bo'lim: java.util.BitSet klassi


Download 73.73 Kb.
bet2/5
Sana30.03.2023
Hajmi73.73 Kb.
#1309761
1   2   3   4   5
Bog'liq
Dasturlash PowerPoint Presentation

22.2-bo'lim: java.util.BitSet klassi

  • 22.2-bo'lim: java.util.BitSet klassi
  • 1.7 dan boshlab java.util.BitSet klassi mavjud bo'lib, u oddiy va foydalanuvchilarga qulay bit saqlash va manipulyatsiyani ta'minlaydi.
  • interfeysi:‌‌
  • final BitSet bitSet = new BitSet(8); // by default all bits are unset
  • IntStream.range(0, 8).filter(i -> i % 2 == 0).forEach(bitSet::set); // {0, 2, 4, 6 }
  • bitSet.set(3); // {0, 2, 3, 4, 6 }
  • bitSet.set(3, false); // {0, 2, 4, 6}
  • final boolean b = bitSet.get(3); // b = noto’g’ri
  • bitSet.flip(6); // {0, 2, 4}
  • bitSet.set(100); // {0, 2, 4, 100} - expands automatically
  • BitSet Clonable va Serializable-ni qo'llaydi va qopqoq ostida barcha bit qiymatlari long[] so'zlar maydonida saqlanadi,bu avtomatik ravishda kengayadi.
  • Shuningdek, u butun mantiqiy operatsiyalarni qo'llab-quvvatlaydi va, yoki, xor va Not:.
  • bitSet.and(new BitSet(8));
  • bitSet.or(new BitSet(8));
  • bitSet.xor(new BitSet(8));
  • bitSet.andNot(new BitSet(8));

22.3-bo'lim: Raqam 2 ning darajasi yoki yo'qligini tekshirish

  • 22.3-bo'lim: Raqam 2 ning darajasi yoki yo'qligini tekshirish
  • Agar x butun soni 2 ning darajasi bo'lsa, faqat bitta bit o'rnatiladi, x-1 esa undan keyingi barcha bitlarga ega. Masalan: 4 - 100 va 3
  • 011 ikkilik raqam bo'lib, yuqorida aytib o'tilgan shartni qondiradi. Nol 2 ning kuchi emas va shunday bo'lishi kerak
  • aniq tekshiriladi.‌‌
  • boolean isPowerOfTwo (int x)
  • {
  • return (x != 0) && ((x & (x - 1)) == 0);
  • }
  • Chapga va o'ngga siljish uchun foydalanish
  • Faraz qilaylik, bizda uchta turdagi ruxsat bor: O'QISH, YOZISH va ISHLATISH. Har bir ruxsat 0 dan oralig'ida bo'lishi mumkin
  • 7. (4 bitli sanoq sistemasini faraz qilaylik)‌‌
  • RESOURCE = READ WRITE EXECUTE (12 bit number)
  • RESOURCE = 0100 0110 0101 = 4 6 5 (12 bit number

Yuqorida o'rnatilgan (12 bitlik raqam) ruxsatlarni qanday olishimiz mumkin?

  • Yuqorida o'rnatilgan (12 bitlik raqam) ruxsatlarni qanday olishimiz mumkin?
  • 0100 0110 0101
  • 0000 0000 0111 (&)
  • 0000 0000 0101 = 5
  • Shunday qilib, biz RESURSning EXECUTE ruxsatini olishimiz mumkin. Endi biz O'QIShni olishni istasak nima bo'ladi? RESOURCE ruxsatlari?‌‌
  • 0100 0110 0101
  • 0111 0000 0000 (&)
  • 0100 0000 0000 = 1024
  • To'g'rimi? Siz buni taxmin qilyapsizmi? Lekin, ruxsatnomalar natijasida 1024. Biz faqat READ olishni xohlaymiz resurs uchun ruxsatlar. Xavotir olmang, shuning uchun bizda smena operatorlari bor edi. Agar ko'rsak, READ ruxsatnomalari 8 ga teng haqiqiy natijaning orqasida bitlar, shuning uchun agar o'zgartirish operatorini qo'llasangiz, READ ruxsatini o'ng tomoniga olib keladi. natija? Nima qilsak:‌‌

Download 73.73 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




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