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



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


Часть I. Базовые сведения о программировании на языке C# 
Обсудим этот пример. Сдвигаемое число — число со знаком. В данном 
случае знак — плюс. Из предыдущего примера мы видели, что в бито-
вом представлении число 40 имеет вид 101000. Сдвигаем его на 5 разря-
дов вправо. Добавляем знак "плюс". Получаем число 1. 
Операторы сдвига имеют короткую форму в виде 
r<или 
r>>d;
. Это 
означает, что 
r=r<или 
r=r>>d;

Для отрицательных чисел задача несколько усложняется (для ручной 
проверки, потому что среда программирования это делает сама). 
Запишем: 
int i = -40; 
Console.WriteLine(i >> 5); 
После компиляции и выполнения получим результат: –2. 
Как он получился? Дело в том, что вычисления в компьютере для отри-
цательных чисел организованы в так называемом дополнительном коде. 
Дополнительный
код
— наиболее распространенный способ представ-
ления отрицательных целых чисел в компьютерах. Он позволяет заме-
нить операцию вычитания операцией сложения и сделать операции 
сложения и вычитания одинаковыми для знаковых и беззнаковых чисел. 
Преобразование числа из прямого кода в 
дополнительный
осуществля-
ется по следующему алгоритму. 
1.
Если число, записанное в прямом коде, положительное, то к нему 
(к младшему разряду) дописывается старший (знаковый) разряд, ко-
торый равен 0, и на этом преобразование заканчивается. 
2.
Если число, записанное в прямом коде, отрицательное, то все разря-
ды числа, кроме знакового, инвертируются (нули заменяются едини-
цами, а единицы — нулями), а к младшему разряду результата при-
бавляется 1. К получившемуся числу дописывается старший (знако-
вый) разряд, равный 1, потому что отрицательное число имеет 
в знаковом разряде 1. 
Рассмотрим пример. Преобразуем отрицательное число –5, записанное в 
прямом коде, в число в дополнительном коде. Прямой код числа –5, 
взятого по модулю (т. е. без знака): 101. Инвертируем все разряды чис-
ла, получая таким образом 
обратный
код
: 010. Добавим к результату 1. 
Получим 011. Допишем слева знаковый единичный разряд. Получим 
1011. Это и есть дополнительный код числа –5. 
Для нашего примера –40 в двоичном виде без знака равно 101000. Ин-
вертируем это число и получаем его обратный код: 010111. Добавляем
к младшему разряду 1. Получаем 011000. Дописываем слева знаковый 
разряд. Получаем дополнительный код: 1011000. Сдвигаем все вправо 
на 5 разрядов. Результат: 10. Но это битовая величина. Десятичная
будет 2. Добавляем знак "минус". Получаем –2. 


ГЛ А В А

Функции 
В процессе программной реализации алгоритмов часто возникает необ-
ходимость выполнения повторяющихся действий на разных группах 
данных. Например, требуется вычислять синусы заданных величин или 
начислять заработную плату работникам. Ясно, что неразумно всякий 
раз в таких случаях создавать заново соответствующую программу 
именно под конкретные данные. Напрашивается вывод, что этот про-
цесс надо как-то параметризовать, т. е. создать такую параметрическую 
программу, которая могла бы, например, вычислять синус от любого 
аргумента, получая извне его конкретное значение, или такую, которая 
бы начисляла зарплату любому работнику, получая данные конкретного 
работника. Такие программы, созданные с использованием формальных 
значений своих параметров, при передаче им конкретных значений па-
раметров возвращают пользователю результаты расчетов. Их называют 
функциями
по аналогии с математическими функциями. 
Если в математике определена некая функция 
y

f
(
x
1

x
2
, ..., 
x
N
), то на 
конкретном наборе данных {
x
11

x
21
, ..., 
x
N
1
} эта функция возвратит вы-
численное ею значение 
y
1

f
(
x
11

x
21
, ..., 
x
N
1
). В данном случае можем 
сказать, что аргументы 
x
1

x
2
, ..., 
x
N
— это формальные параметры функ-
ции 
f
(), a 
x
11

x
21
, ..., 
x
N
1
— их конкретные значения. Функция в С# объ-
является почти аналогичным образом: задается тип возвращаемого ею 
значения (из рассмотренного материала мы знаем, что переменные мо-
гут иметь типы 
int

float

long
и т. д.; тип значения, возвращаемого 
функцией, может быть таким, как и тип переменных); после задания 
типа возвращаемого значения задается имя функции (как и для матема-
тической функции). Затем в круглых скобках указываются ее аргумен-
ты — 
формальные
параметры
, каждый из которых должен быть описан 
так, как если бы он описывался в программе самостоятельно вне функ-
ции. Это только первая часть объявления функции. 


86 
Download 8,15 Mb.

Do'stlaringiz bilan baham:
1   ...   52   53   54   55   56   57   58   59   ...   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