Kompyuter tizimlari kafedrasi
Majmua
С# да ҳар бир берилганлар типи учун қийматлар диапазонига ва улар устидан бажарилиши мумкин бўлган амалларга қатий назорат белгиланган. Бутун сонли типлар С# да туққиз турдаги бутун сонлар типи белгиланган: char, byte, sbyte, short, ushort, int, uint, long ва ulong. Char типи асосан белгилар тақдимоти учун ишлатилади, ва шу бўлимда кейинчалик тавсифланади. Қолган саккиз тип сонлар устидан амаллар бажариш учун ишлатилади. Қуйидаги жадвалда ушбу саккиз типга мувофиқ ажратиладиган хотира хажми ва йул қўйиладиган қийматлар диапазони кўрсатилган.
Жадвалдан кўриниб турибдики С# да ҳам белгили(минус ишорали яъни манфий), хам белгисиз бутун сонлар варианти кўрсатилган. Улар орасидаги фарқ бутун соннинг юқори битини интерпритация қилиш услубида берилган. Белгили бутун сон кўрсатилганда бутун соннинг юқори битни белги байроғи сифатида интерпритацияси кўзда тутилган кодни генерация қилади. Агар байрок 0 белгили булса, бу мусбат сон, агар 1 булса, бу манфий сон. Манфий сонлар деярли ҳар доим иккиланган тўлдириш методини ишлатиш билан кўрсатилади. Бу методда соннинг барча битлари (белги байроғидан ташқари) инвертланади, сўнг бу сонга бир қўшилади, энг сўнгида белги байроғига 1 қиймати берилади. Белгили бутун сонлар кўпгина алгоритмлар учун жуда муҳим, лекин улар мос белгисиз бутун сонларнинг абсолют қисмининг фақат ярмигагина эга. Масалан, 32767 short типидаги сони иккилик санок тизими кўринишида ёзайлик: 01111111 11111111. Бу белгили тип бўлгани учун юқори битга 1 қиймати берилганда -1 (агар иккиланган тўлдириш усулидан фойдаланилса) сифатида интерпритация қилинади. Аммо уни ushort типида эълон қилинса, унда юқори битга 1 қиймати берилганда сон 65535 сифатида интерпритация қилинади. Энг кўп ишлатиладиган бутунсонли тип – бу int. int типи ўзгарувчиларини циклларни бошқариш, массивларни индексациясида ва турли математик хисоблашларда ишлатилади. С# да int типидан катта сонлар учун unit, long, ulong типлари ишлатилади. Қуйида томони узунлиги 1 милга тенг бўлган куб хажмини хисоблаш (дюймларда) дастури кўрсатилган. Бу қиймат етарли даражада катта бўлгани учун унинг сақланишига дастурда long типи ўзгарувчисини ишлатади. /* Дастур томони узунлиги 1 милга тенг булган куб хажмини хисоблайди(дюймларда) (маълумот учун: 1 милда – 5280 фут, 1 футда – 12 дюйм бор) */ using System; class Kub_hajmi { public static void Main() { long mm; long dd; mm = 5280 * 12; dd = mm * mm * mm; Console.WriteLine("Томони узунлиги 1 милга тенг булган куб хажми " + dd + " га тенг"); } } Қуйида бу дастур натижаси кўрсатилган. Томони узунлиги 1 милга тенг булган куб хажми 254358061056000 га тенг. Бундай натижа int ёки uint типидаги узгарувчига сиғмаслиги аниқ кўриниб турибди. byte ва sbyte – энг кичик бутун сонлар типи. byte типи қиймати 0 дан 255 гача бўлган оралиқда жойлашиши мумкин. byte типи ўзгарувчилари бирор тузилмада генерация қилинган маълумотнинг байтлар оқими каби қайта ишланмаган иккиланган маълумотлар билан ишлашда жуда қўл келади. Унча катта бўлмаган белгили бутун ўзгарувчиларида sbyte типи ишлатилади. Download 5,29 Mb.
|