«C# dasturlash tili» O’quv qo’llanma


VA, YOKI kiskarto’vchi YOKI va YUK razryadli operatorlari



Download 0,57 Mb.
bet31/76
Sana20.07.2022
Hajmi0,57 Mb.
#828017
1   ...   27   28   29   30   31   32   33   34   ...   76
Bog'liq
C # ma\'lumotnoma

VA, YOKI kiskarto’vchi YOKI va YUK razryadli operatorlari.

Razryadli VA, YOKI kiskarto’vchi YOKI va YUk operatorlari &, |, A va , simvollari bilan beriladi. Ular logik operatorlari kanaka amalni bajarsa ular kam xuddi sho’ amalni bajaradi. Ayirmachili sho’ndaki razryadli amallar bit asosida ishlaydi.Keyingi jadvalda razryadli amallarning barcha ( 0 va 1) bo’lgan natiyjalari keltirilgan.



P ya p & z p I q p”0 0 0 0 0 1
1 0 0 1 1 0
0 1 0 1 1 1
1 1 1 1 0 0


Va razryadli operatorini bitli axborotini maydalab kursatishga buladi.
Bo’ deganimiz 0 hoxlagan operandida 0-ni tashkil etadi mos kelo’vchi bit natiyjasida. Masalan
11010011
10101010
& ________
1000 0010

Keyingi dasto’rda razryadli operatorining jo’ft emas sonlardan jo’ft sonlarni olinishi ko’rsatiladi. Bo’ amalga oshiriladi( nulni ) kichik razryadli sonida.


Masalan, 9 soni ikkilik kodida 0000 1001 soni bilan keltiriladi. Kichik razryadini nulga keltirishda 8 sonini olamiz (0000 1000 ikkilik kodida)

G’G’ Va operatorini xoxlagan sonni G’G’


jo’ft soniga «aylantirish» da foydalanilishi

using System ;


class Make Even { public static void Main( ) { ushort num; ushort i;

for i q 1;

num qi;

Console. WriteLine (“ num: “Qnum) ;

num – (ushort ) ( num & Ox FFFE) ; G’G’ num & 1111 1110


Console.WriteLine ( “ num kichkina bitni olib tashlangannan kegin :”


Q nura Q “g’ n”) ;
}
}
}
Bo’ dasto’rning natiyjasi kuyidagi kurinishda bo’ladi:

num 1
num kichkina bitni olib tashlangandan so’ng : 0


num 2
num kichkina bitni olib tashlangandan so’ng : 2


num 3
num kichkina bitni olib tashlangandan so’ng : 2


num 4
num kichkina bitni olib tashlangandan so’ng : 4

num 5
num kichkina bitni olib tashlangandan so’ng : 4


num 6
num kichkina bitni olib tashlangandan so’ng : 6

num 7
num kichkina bitni olib tashlangandan so’ng : 6


num 8
num kichkina bitni olib tashlangandan so’ng : 8


num 9
num kichkina bitni olib tashlangandan so’ng : 8


num 10
num kichkina bitni olib tashlangandan so’ng : 10


Bo’ dasto’rda foydalaniladigan OxFFFE ning ma’nosi ikkilik kodida
1111 1111 1111 1110 turida keltiriladi. Shunday kilib, num & OxFFFE amali barcha bitlarni o’zgartirilmagan xolatda koldiradi, kichkinasidan tashkari va unga nul ma’nosi kuyiladi. Shuning uchun xam xoxlagan jo’ft son sho’ « tozalatmadan» utib jo’ft bulib xoladi, a xoxlagan jo’ft emas soni esa undan jo’ft bo’lib chikadi.
Va operatori razryad ma’nosi aniklashda xam foydalaniladi Masalan, keyingi dasturda berilgan son jo’ft emasligini aniklaydi.
G’G’ VA razryadli operatorining sonni jo’ft
G’G’ emasligini aniklashda foydalanilishi

using System;


class Isodd {
public static void Main 0 {
usort num;

num q10 ;


iff ( num & 1 ) num1 )


Console. WriteLine ( « Bo’ tekst kursatilmaydi».) ;


Num q11;

If (( num & 1) -1)
Console.WriteLine ( num Q “ – butun emas son »);

Bo’ dasto’rning natiyjasi kuyidagicha


11 – tok son.
Ikki xolatda xam if da VA amali bajariladi num o’zgaro’vchisi uchun 1 kuyiladi.
Agarda kichik bit num uzgaruvchisiga kuyilgan bulsa ( ya’ni 1 ga teng) num & 1 amalining natiyjasi xam 1 ga teng buladi. Aksi xolda natiyja 0 ga teng bo’ladi. If instruksiya natiyjasi bajariladi fakatkina analizlanayotgan son tok soni bo’lsa.
Razryadli testlash imkoniyatlarini, & operatorini dasturlar yaratishda byte tipini ikkilik formatda kursatadi. Shu masalaning yechilgan bir variantini karaymiz.

G’G’ baytni tashkil etadigan bit ma’nolarini karaymiz.


using System;
class ShowBits { public static
void Main { int t;
byte val;

val q 123;


fort( t q 128; t > 0; t -tG’2) (
if {( val & t ) 1q0) Console.Write C “1”);
if (( val & t ) qq 0) Console.Write C ”0”);
Bo’ dasturning natiyjasi kuyidagicha buladi;
1 1 1 1 0 1 1
For siklida VA razryad operatori yordamida val o’zgaro’vchisining xar bir ma’nosi testdan utadi. Agarda bo’ bitga mavjo’d bo’lsa unda 1 soni chikadi, aksi x olda 0 – soni chikadi
YOKI razryad operatori, VA operatoriga teskarisi bitga 1-ni kuyish uchun kulayli foydalniladi. YOKI amalini bit operandida bajarayotganda 1 ma’nosiga tenng, bo’nga mos ma’nosi xam 1 ga teng bo’ladi.
Masalan :
1101 001
1010 1010
&________
1 1 1 0 1 1
YOKI razryad operatorining yokoridagi keltirilgan dasto’rni tok sonlarni olish uchun xam keltirsa xam buladi.

G’G’ YOki razryad operatorini xoxlagan jo’ft sonini tok soniga


G’G’ «aylantirish » da foydalanishi

using System;


class MakeOdd { public static void
Main ( ) { ushort num; ushort i;

for ( i q 1; i
num q i ;

Console. WriteLine (“ num: ”Q num);


Num q (ushort ) ( “num : “ Q num);


num q (ushort ) ( num I 1); G’G’ num| 0000 0001


Console. WriteLine ( “ num ga kichik bitni kuygandan so’ng: “


Q num Q “g’ n”) ;

Bu dasto’rning natiyjasi kuyidagicha


num 1
num kichkina bitni olib tashlangandan so’ng : 1

num 2
num kichkina bitni olib tashlangandan so’ng : 3


num 3
num kichkina bitni olib tashlangandan so’ng : 3


num 4
num kichkina bitni olib tashlangandan so’ng : 5

num 5
num kichkina bitni olib tashlangandan so’ng : 5


num 6
num kichkina bitni olib tashlangandan so’ng : 7

num 7
num kichkina bitni olib tashlangandan so’ng : 7


num 8
num kichkina bitni olib tashlangandan so’ng : 9


num 9
num kichkina bitni olib tashlangandan so’ng : 9


num 10
num kichkina bitni olib tashlangandan so’ng : 11


Bu dasto’rning ishi YOKI razryad operatorining ketma-ket sonlar orasida va 1 soni ikkilik kodida 0000 0001 turida keltiriladi. Shunday kili, 1- bo’ ma’noda fakat kichik razryad kuyilgan. Agarda, bu ma’no YOKI amalining ba’zi bir ma’nosi bo’lsa, unda bu amalning natiyjasi ikkinchi operand Bilan tuxri keladi uning kichik razryadidan tashkari , ya’ni u 1 teng bo’ladi ( xolgan xammasi o’zgarmiydi). Shunday kilib, xoxlagan jo’ft son YOKI opertoridan « utib» bir soniga kupayadi, ya’ni tok soni bo’ladi.


YOKI razryad kiskarto’vchi ( OR) bitga birni ko’yadi fakatgina natiyjasi bir-biridan fark kilsa gina, ya’ni teng emas.
Masalan:
0111 1111
1011 1001
________
1100 0110

OR operatori o’zgacha bir xossaga ega, va uni kodlashda foydalaniladi. Agarda, OR amalini X ukish va Y ma’nosi orasida bajarsak, va OR amalini birinchi operatsiyasi Bilan Y ma’nosi orasdi foydalansak, unda X ning oldingi ma’nosini olamiz. Bu deganimiz ikkita amalni bajargandan so’ng


R1 q X → Y ; R2 q R1 →Y ;

R2 ning ma’nosi X ma’nosi bilan barobar bo’ladi. Shunday kilib, ketma-ket OR amalini ishlatgandan so’ng, Y- ning bir xil ma’nolarni foydalangandan so’ng X-ning ma’nosi chikadi. Bu prinsipni oddiy shifrlashda foydalansa bo’ladi, unda ba’zi bir ma’no - kaliti – axborotni kodlash va kodni ochishda yordam beradi. YOKI kiskarto’vchi amali shifrlashda birinchi marotaba foydalaniladi, a kodni ochishda ikkinchi marotaba foydalaniladi. Bu oddiy uslubni kuyidagi dasto’rda ko’rib utamiz:


G’G’ OR operatorini axborotni shifrlashda


va shifrlanganni ochishda foydalanishi.

using System;


class Encode {
public static void Main( ) {
char chl ‘ H1; char ch2 -
‘1’ ; char ch3 –‘1’
int key q8.8;

Console. WriteLine (“ Oldingi axborot : “ Q


chl Q ch2 Qch3 );

G’G’ Axborotni shifrlaymiz. ch1q


(char) (ch1 A key); ch2 q
(char) (ch2 - key); ch3 q
(char) (ch3 A key);

Console. WriteLine (“ Shifrlangan axborot : “ Q


chl Q ch2 Qch3 );

G’G’ shifrlangan axborotni ochamiz;



ch1q (char) (ch1 l key);
ch2 q (char) (ch2 A key);
ch3 q (char) (ch3 l key);
Console. WriteLine (“ Shifrlangan axborotni ochilgani : “ Q
chl Q ch2 Qch3 ); } }

Bu dasto’rning natiyjasi kuyidagicha:


Bor bulgan axborot : Hi!


Shifrlangan axborot :
> 1y Shifrlanganni ochilgan axborot:
Hi!

Kurib turganingizdek, OR amalaining ikki marotaba foydalanilishi, bir kalitning ma’nosini ikkalasinda xam foydalanilishida shifrlanganni ochilgan axborotni olamiz.


YUK unar operatori ( yoki I gacha to’liktirilgan operator) uzining operandining xamma bitlarining xolatini tekshiradi. Masalan, agarda butunsoni ma’no ( A o’zgaruvchida saklanadigan) ikkilik kodini tashkil etadi 1001 0110, A-amalining natiyjasida ikkilik kodini olamiz 0110 1001.
Endigi dasto’rda YUK operatorining ba’zi bir soni 1 ga to’liktirilganincha ikkilik kodida ko’rsatiladi.
G’G’ YUK operatorining foydalanilishi

using System;


class Not Demo { public static void
Main( ) {
Sbyte to q -34
int t;
for ( t-128; t > 0; t q tG’2 ) {
if (( b & t ) 1q0) Console.Write C “1”);
if (( b & t ) - 0) Console.Write ( ”0”);
Console. WriteLine ( );
G’G’ Barcha bitlarni tekshiramiz,
bq(sbyte)  b;
for ( t q 128; t > 0; t q tG’2) {
if (( b & t ) 1q0) Console.Write C “1”);
if (( b & t ) –i 0) Console.Write ( ”0”);
}}} Bo’ dasturning natiyjasi kuyidagicha
1 1 0 1 1 1
1 0
0 0 1 0 0 0
0 1



Download 0,57 Mb.

Do'stlaringiz bilan baham:
1   ...   27   28   29   30   31   32   33   34   ...   76




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish