C# для начинающих Пахомов Б. И



Download 8,15 Mb.
Pdf ko'rish
bet55/266
Sana20.04.2022
Hajmi8,15 Mb.
#567200
1   ...   51   52   53   54   55   56   57   58   ...   266
Bog'liq
C# for beginners


Часть I. Базовые сведения о программировании на языке C# 
Оператор 
|
(логическое "ИЛИ", дизъюнкция) для целых чисел играет 
роль побитового логического сложения. Результат такого сложения бу-
дет равен единице тогда и только тогда, когда хотя бы один из операн-
дов равен единице. Например, можно выполнить следующие операторы: 
int a=5; 
int d=3; 
int r=a|d; 
// 5 | 3 = 7 — это результат: 
5=101 
3=011 
------ 
111=7
в десятичной системе 
То есть видим, что операторы 
&

|
работают как с логическими типами, 
так и с целыми типами. По отдельности или можно смешивать в опера-
торах? Вот пример: 
int i = 0; 
bool d=true; 
if (d & ++i == 1) 

i++; 

Результат: 
i=2

То есть булева и целая переменные участвуют в одном выражении и 
логически сравниваются. 
Операторы сдвига 
Здесь определены два оператора: сдвиг влево (
<<
) и сдвиг вправо (
>>
). 
При сдвиге влево-вправо значения битов числа перемещаются соответ-
ственно влево-вправо. При этом какие-то значения могут выпадать за 
размер числа как с начала, так и с конца. В этой связи при сдвиге суще-
ствуют понятия арифметического и логического сдвигов. Сдвиг, при 
котором бит уходит, не влияя на оставшиеся биты, а на место появив-
шегося бита записывается бит 0, — это логический сдвиг. При арифме-
тическом сдвиге сдвигаемое значение рассматривается не просто как 
группа битов, а как целое число в 
дополнительном
коде
(далее мы рас-
смотрим, как получать этот вид кода). При сдвиге влево арифметиче-
ский сдвиг ведет себя как логический сдвиг, при сдвиге вправо бит ухо-


Глава 3. Базовые типы данных, переменные 
83 
дит, не влияя на оставшиеся биты, а на место появившегося бита уста-
навливается бит, соответствующий знаку. 
Оператор сдвига влево (
<<
) имеет вид 
a<и сдвигает первый операнд 
влево в соответствии с количеством битов, заданным вторым операн-
дом. Второй операнд должен быть типа 
int
или типа, имеющего пред- 
определенное неявное числовое преобразование в 
int
. Если тип первого 
операнда — 
int
или 
uint
(32-разрядное число), начало сдвига задается 
пятью младшими разрядами второго операнда. Фактический сдвиг идет 
от 0 до 31 бита. Если тип первого операнда — 
long
или 
ulong
(64-разрядное число), начало сдвига задается шестью младшими разря-
дами второго операнда. Фактический сдвиг идет от 0 до 63 бит. Стар-
шие разряды первого операнда, которые при сдвиге выходят за пределы 
операнда, теряются, а пустые младшие разряды заполняются нулями. 
Операторы сдвига никогда не вызывают переполнений. 
Пример: 
int r, a=5, d=3; 
r=a << d; 
Результат: 
r=40

Обсудим этот пример. 
a=5=101
в битовом представлении. Сдвигаем на 
3 разряда влево. Получаем 
a=101000
. Переводим назад в десятичную 
систему по правилу разложения числа по степеням основания системы 
счисления: 101000 = 1
×
2
5
+ 0
×
2
4
+ 1
×
2
3
. Остальные коэффициенты раз-
ложения — нули. Члены разложения с такими коэффициентами в сумме 
дадут ноль. Поэтому общая сумма будет равна 32 + 8 = 40. 
Оператор сдвига вправо (
>>
) имеет вид 
a>>b
и сдвигает первый операнд 
вправо в соответствии с количеством бит, заданным вторым операндом. 
Если тип первого операнда — 
int
или 
uint
(32-разрядное число), начало 
сдвига задается пятью младшими разрядами второго операнда в виде: 
второй_операнд
&
0x1f
. Так можно выделить младшие разряды из второ-
го операнда: 
&
— операция конъюнкции,

означает, что запись шест-
надцатеричная, 
1f
— 11111. Если тип первого операнда — 
long
или 
ulong
(64-разрядное число), начало сдвига задается шестью младшими 
разрядами второго операнда (второй операнд 
&
0x3f = 111111
(
3=11
и 
f=1111
)). 
Пример: 
int r, a= 40, d=5; 
r=a >> d; 
Результат: 
r=1



84 

Download 8,15 Mb.

Do'stlaringiz bilan baham:
1   ...   51   52   53   54   55   56   57   58   ...   266




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