Share to: share facebook share twitter share wa share telegram print page

Целое (тип данных)

Целое, целочисленный тип данных (англ. integer) — один из самых простых примитивных типов данных в информатике. Служит для представления целых чисел, ограниченного минимальным и максимальным значением, зависящими от выделенной под число памяти.

Разновидности

Как правило, для большинства задач используется целочисленный тип, называемый также native int (или просто int), с разрядностью, равной разрядности машинного слова процессора, на котором исполняется программа, или режима работы процессора, если он может работать с машинными словами разной длины. При необходимости могут использоваться целые числа как меньшей (например, при необходимости экономить память), так и большей (при использовании длинной арифметики) разрядности. Другая возможная причина использования целых отличной от родной длины — обеспечение переносимости данных. Наиболее распространённые разновидности целого:

  • однобайтное целое (англ. tiny int) — 8 бит, -128 ÷ 127;
  • короткое целое (англ. short int) — 16 бит, −32 768 ÷ 32 767;
  • длинное целое (англ. long int, также int32) — 32 бита, −2 147 483 648 (−231) ÷ 2 147 483 647 (231−1);
  • двойное длинное целое (англ. long long int, также large int, big int, int64) — 64 бита, -9 223 372 036 854 775 808 (−263) ÷ 9 223 372 036 854 775 807 (263−1);

Также если необходимо экономить память, но нет необходимости в представлении отрицательных чисел, могут использоваться беззнаковые (unsigned) целые, что позволяет увеличить максимально возможное значение вдвое и ещё на единицу: например, беззнаковым коротким целым можно представить число от 0 до 65 535. Иногда в литературе[1] встречаются рекомендации не использовать беззнаковые целые, поскольку он может быть не реализован процессором компьютера. Также поддержка беззнаковых типов отсутствует в некоторых языках программирования, например в Java[2].

Использование беззнаковых целых оправдано в алгоритмах, использующих целочисленное переполнение — дело в том, что оптимизирующие компиляторы могут менять порядок операций и производить алгебраические преобразования, в результате чего переполнение в оптимизированном алгоритме может происходить в другой момент, чем в неоптимизированном, или не происходить вовсе, что приводит к неопределённому поведению. Для беззнаковых целых оптимизации, влияющие на арифметическое переполнение запрещены, благодаря чему поведение при переполнении всегда определено, но машинный код, генерируемый компилятором, становится менее оптимальным.

Представление

В памяти целое число хранится как последовательность битов, разбитая на байты (октеты). Порядок следования байтов может быть как прямым (англ. big-endian), от старшего разряда к младшему, так и обратным (англ. little-endian).

Представление знака тоже может различаться для разных архитектур. Наиболее распространён так называемый дополнительный код, при котором отрицательное число представлено вычитанием из 0 с переполнением, при этом если старший бит старшего байта включён — число считается отрицательным. Реже используются обратный код (когда отрицательное число представлено как побитовая инверсия положительного), прямой код (когда отрицательное число представлено как положительное со включённым битом знака) или более экзотические, такие как система счисления по основанию −2[3].

В калькуляторах и некоторых ранних компьютерах также применялось представление целых чисел в виде двоично-десятичного кода. Такой код упрощает устройство индикации и делает представление числа в памяти более человекочитаемым, но усложняет арифметическо-логическое устройство и требует больше памяти для представления тех же чисел.

Операции над целыми

Арифметические операции

К целочисленным значениям применимы в первую очередь арифметические операции. Ниже приведены самые часто используемые (в скобках указаны их обозначения в различных языках программирования и им аналогичным средствах).

  • Сравнение (англ. comparison). Здесь применимы соотношения «равно» («=»; «==»; «eq»), «не равно» («!=»; «<>»; «ne»), «больше» («>»; «gt»), «больше или равно» («>=»; «ge»), «меньше» («<»; «lt») и «меньше или равно» («<=»; «le»).
  • Инкремент (англ. increment; «++») и декремент (англ. decrement; «--») — арифметическое увеличение или уменьшение числа на единицу. Выделено в отдельные операции из-за частого использования с переменными-счётчиками в программировании.
  • Сложение (англ. addition; «+») и вычитание (англ. subtraction; «-»).
  • Умножение (англ. multiplication; «*»).
  • Деление (англ. division; «/»; «\») и получение остатка от деления (англ. modulo; «%»). Некоторые процессоры (например, архитектуры x86) позволяют производить обе эти операции за одну инструкцию.
  • Инверсия знака (англ. negation) и получение абсолютного значения (англ. absolute).
  • Получение знака. Результатом такой операции обычно является 1 для положительных значений, −1 — для отрицательных и 0 — для нуля.
  • Возведение в степень («^»).

В некоторых языках программирования для лаконичности есть операторы, которые позволяют производить арифметическую операцию с присвоением. Например, «+=» складывает текущее значение переменной слева с выражением справа и помещает результат в исходную переменную. Так же в некоторых языках и средах доступна совмещённая операция MulDiv, которая умножает на одно число, а потом делит результат на второе.

Обычно самыми дорогими по скорости операциями являются умножение и деление (получение остатка от деления).

В памяти компьютера для хранения целых чисел обычно отводятся ячейки фиксированного объёма. Из-за этого операции увеличения и уменьшения значений могут приводить к переполнению, что оборачивается искажением результата. Некоторые языки программирования позволяют производить вызов исключения в таких случаях. Кроме этого, можно определять поведение при переполнении:

  • Циклическая операция (обычно происходит по умолчанию). Например, если сделать инкремент 8-битного беззнакового значения 255, то получится 0.
  • Операция с насыщением. Если будет достигнут предел, то конечным значением будет это предельное. Например, если к 8-битному беззнаковому числу 250 прибавить 10, то получится 255. Сложение, вычитание и умножение с насыщением обычно применяется при работе с цветом.

Побитовые операции

Помимо математических, к целым числам применимы битовые операции, которые основаны на особенностях позиционного двоичного кодирования. Обычно они выполняются значительно быстрее арифметических операций и поэтому их используют как более оптимальные аналоги.

  • Битовый сдвиг влево с дополнением нулями аналогичен умножению числа на степень двойки (количество бит сдвига соответствует степени двойки).
  • Битовый сдвиг вправо аналогичен делению на степень двойки (количество бит сдвига соответствует степени двойки). Некоторые языки программирования и процессоры поддерживают арифметический сдвиг, который позволяет сохранять знак у целых со знаком (сохраняется значение старшего бита).
  • У целых со знаком знак можно узнать по старшему биту (у отрицательных он установлен).
  • Чтение и установка младшего бита позволяет управлять чётностью (у нечётных чисел он установлен).
  • Побитовое «И» над определённым количеством младших бит позволяет узнать остаток от деления на степень двойки (степень соответствует количеству бит).
  • Побитовое «ИЛИ» над определённым количеством младших бит и последующий инкремент округляет число на значение, равное степени двойки (степень соответствует количеству бит) — используется для выравнивания адресов и размеров на определённое значение.

Работа со строками

Довольно частыми операциями являются получение строки из числового значения во внутреннем представлении и обратно — число из строки. При преобразовании в строку обычно доступны средства задания форматирования в зависимости от языка пользователя.

Ниже перечислены некоторые из представлений чисел строкой.

  • Десятичное число (англ. decimal). При получении строки обычно можно задать разделители разрядов, количество знаков (добавляются лидирующие нули, если их меньше) и обязательное указание знака числа.
  • Число в системе счисления, которое является степенью двойки. Самые частые: двоичное (binary англ. binary), восьмеричное (англ. octal) и шестнадцатеричное (англ. hexadecimal). При получении строки обычно можно задать разделители групп цифр и минимальное количество цифр (производится дополнение нулями, если их меньше). Так как эти представления чаще всего используются в программировании, то здесь обычно доступны соответствующие опции. Например, указание префикса и постфикса для получения значения в соответствии с синтаксисом языка. Для 16-ричных актуально указание регистра символов, а также обязательное добавление нуля, если первая цифра представлена буквой (чтобы число не определялось как строковый идентификатор).
  • Римское число (англ. roman number).
  • Словесное представление (в том числе сумма прописью) — число представляется словами на указанном натуральном языке.

Перечислимый тип

К целым относится также перечисляемый тип[источник не указан 1012 дней]. Переменные перечислимого типа принимают конечный заранее заданный набор значений. Размер набора не определяется числом байтов, используемых для представления целочисленных значений переменных такого типа.

Например, в языке Python логический тип является подтипом целого и использует имена False и True, которые при приведении к целому получают значения 0 и 1 соответственно[4].

Примечания

  1. Бен-Ари, 2000, с. 54.
  2. Types, Values and Variables Архивная копия от 28 февраля 2012 на Wayback Machine, Java Languaege Specification, 2-nd ed.
  3. Hacker's Delight, 2004, с. 215—221.
  4. Beazley, 2009, pp. 38.

Литература

  • Основные определения цифровой и микропроцессорной техники, Система дистанционного обучения СПбГУ ИТМО, Программное обеспечение измерительных систем на базе универсальных компьютеров
  • М. Бен-Ари. Глава 4. Элементарные типы данных // Языки программирования. Практический сравнительный анализ = Understanding Programming Language. — Москва: Мир, 2000. — С. 53—74. — 366 с. — ISBN 5-03-003314-9.
  • Теренс Пратт, Марвин Зелковиц. 5.2. Скалярные типы данных // Языки программирования. Разработка и реализация = Programming Language. Design and Implementation. — 4-th edition. — Питер, 2002. — С. 205—216. — 688 с. — ISBN 5-03-003314-9.
  • Генри Уоррен мл. Алгоритмические трюки для программистов = Hacker's Delight. — Вильямс, 2004. — 288 с. — ISBN 5-8459-0572-9.
  • Behrooz Parhami. Computer Arithmetic: Algorithms and Hardware Designs. — New York: Oxford University Press, 2000. — 510 p. — ISBN 0-19-512583-5.
  • David M. Beazley. Python Essential Reference. — 4th Edition. — Addison-Wesley Professional, 2009. — 717 с. — ISBN 978-0672329784.

Read other articles:

Four-masted steel barque Not to be confused with Hougoumont (ship). Hougomont docked in an unidentified port circa 1900 (State Library of South Australia PRG 1373-15-80) History NameHougomont OperatorGustaf Erikson[1] BuilderScott Shipbuilding and Engineering Company, Greenock, Scotland[2] Completed1897 FateScuttled 8 January 1933 in Stenhouse Bay Statushistoric shipwreck[2] General characteristics TypeBarque[2] Tonnage2378[2] Length292 ft 3 i...

 

Augusta von Harrach Información personalNombre en alemán Auguste von Harrach Nacimiento 30 de agosto de 1800 Dresde (Electorado de Sajonia) Fallecimiento 5 de junio de 1873 Bad Homburg (Alemania) Sepultura Mausoleo del Parque Charlottenburg Religión Protestantismo y catolicismo FamiliaFamilia Harrach (casa nobiliaria) Padres Ferdinand Graf von Harrach Christiane von Rayski Cónyuge Federico Guillermo III de Prusia (1824-1840) Información profesionalOcupación Salonnière y aristócra...

 

العلاقات الهندية القبرصية الهند قبرص   الهند   قبرص تعديل مصدري - تعديل   العلاقات الهندية القبرصية هي العلاقات الثنائية التي تجمع بين الهند وقبرص.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية للدولتين: وجه المقارنة الهند قبرص المساح

Okasionalisme adalah paham yang menyatakan bahwa jiwa dan tubuh tidak berinteraksi dalam hubungan kausalitas.[1] Jiwa dan tubuh hanya berhubungan pada saat-saat tertentu, di mana peristiwa tersebut dimungkinkan oleh perantaraan Allah.[2] Okasionalisme berasal dari bahasa Latin occasio yang berarti 'jatuh'.[2] Nicolas Malebranche, seorang penganut paham okasionalisme Okasionalisme ini berawal dari pemikiran Descartes yang memisahkan secara ketat antara tubuh dan jiwa (d...

 

Shape of YouSingel oleh Ed Sheerandari album ÷Dirilis6 Januari 2017 (2017-01-06)Studio Rokstone (London) Gingerbread Man (Suffolk dan London) Genre Pop dancehall R&B tropical house[1] Durasi3:54[2]Label Asylum Atlantic Pencipta Ed Sheeran Johnny McDaid Kandi Burruss Kevin She'kspere Briggs Steve Mac Tameka Cottle Produser Ed Sheeran Steve Mac Kronologi singel Ed Sheeran Lay It All on Me (2015) Castle on the Hill / Shape of You (2017) Galway Girl (2017) Video musikSha...

 

Mir原作者Canonical公司開發者Canonical公司当前版本2.16.0 (2023年11月28日;穩定版本)[1] 源代码库github.com/MirServer/mir 编程语言C++操作系统Linux类型显示服务器许可协议GPLv3[2]网站unity.ubuntu.com/mir/wiki.ubuntu.com/MirSpec Mir是由Canonical公司开发的Linux操作系统下的显示服务器。原本用以取代Ubuntu中的X窗口系统[3][4][5],但是2017年4月Canonical公司宣佈放棄開發Mir專用...

Russian fashion designer (1938–2023) Vyacheslav ZaitsevВячеслав ЗайцевBornVyacheslav Mikhailovich Zaitsev(1938-03-02)2 March 1938Ivanovo, Russian SFSR, Soviet UnionDied30 April 2023(2023-04-30) (aged 85)Shchyolkovo, Moscow Oblast, RussiaOccupationsFashion designerpainterartistLabelSlava ZaitsevWebsiteslavazaitsev.com Vyacheslav Mikhailovich Zaitsev (Russian: Вячеслав Михайлович Зайцев; 2 March 1938 – 30 April 2023) was a Russian fashion...

 

В Википедии есть статьи о других людях с такой фамилией, см. Бессмертный; Бессмертный, Юрий. Юрий Львович Бессмертный Дата рождения 15 августа 1923(1923-08-15) Место рождения Москва Дата смерти 30 ноября 2000(2000-11-30) (77 лет) Место смерти Москва Страна  Россия[1] Научная сфера исто...

 

1989 novel by Geoff Ryman The Child Garden Cover of first edition (hardcover)AuthorGeoff RymanCountryUnited KingdomLanguageEnglishGenreScience fictionPublisherUnwin Hyman (U.K.) & St. Martin's Press (U.S.)Publication date1989Media typePrint (Hardcover & Paperback)Pages389ISBN0-04-440393-3OCLC20016163 The Child Garden is a 1989 science fiction novel by Canadian writer Geoff Ryman. It won both the Arthur C. Clarke Award and the John W. Campbell Memorial Award in 1990.[1] Th...

American dramatist Tania KatanAlma materArizona State UniversityOccupation(s)Author, Inspirational Speaker, Career Creativity ExpertNotable workCreative Trespassing: How to Put Spark and Joy Back into Your Work and Life (Penguin Random House, Feb 2019), My One-Night Stand With Cancer: A Memoir, #ItWasNeverADress: CampaignPartnerAngela Ellsworth 2006-presentAwardsStonewall Book Award, Publishing Triangle Award, and Lambda Literary AwardWebsitehttp://www.taniakatan.com/ Tania Katan is an a...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Eights Week – news · newspapers · books · scholar · JSTOR (June 2013) (Learn how and when to remove this template message) Summer Eights Head of the River Oriel College Men[1] Christ Church Women[1] Highest 2nd Eight (Men) Oriel College (Divisio...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Erasmus+ – news · newspapers · books · scholar · JSTOR (March 2014) (Learn how and when to remove this template message) Logo of Erasmus+ Erasmus+ is the European Commission's Programme for education, training, youth, and sport for the period 2021–2027, succe...

Daughter (Sri Lankan Tradition) of Emperor Ashoka SanghamittaArahath Sangamitta Theri Statue at a Monastery in Sri LankaPersonalBorn282 BC[1]Ujjeni, Maurya Empire, IndiaDied203 BC[1]Anuradhapura, Sri LankaResting placeSri LankaReligionBuddhismNationalityIndianSpouseAggibrahmāChildrenSon – SumanaParentsAshoka (father)Devi (mother)SectTheravadaKnown forEstablishing a Theravāda Buddhist nunnery in Sri LankaOther namesSanghamitrā (Sanskrit), Ayapali This article sho...

 

2016 filmMadreFilm posterDirected bySimón Mesa SotoWritten bySimón Mesa SotoProduced byDavid HerdiesCinematographyJuan Sarmiento G.Edited byGustavo VascoDistributed byMomento FilmRelease date May 18, 2016 (2016-05-18) (Cannes Film Festival) Running time14 minutesCountryColombia/SwedenLanguageSpanish Madre is a 2016 Colombian short drama film directed by Simón Mesa Soto. It is one of four short films created as part of a Swedish-financed international film project titled ...

 

Official flag of Warsaw, Poland Flag of WarsawUseCivil flag Proportion 2:3 (unofficial; popularly used) 5:8 (unofficial; popularly used) Adopted1938DesignHorizontal bicolour of yellow (top) and red (bottom) The flag of the city of Warsaw, the capital of Poland, is a bicolour rectangle, divided into two equally-sized horizontal stripes: yellow at the top, and red at the bottom. It begun being used in 1938 without official status, and was officially adopted by the city, in 1991. Design Flag of ...

UFC mixed martial arts event in 2009 UFC 100The poster for UFC 100InformationPromotionUltimate Fighting ChampionshipDateJuly 11, 2009VenueMandalay Bay Events CenterCityLas Vegas, NevadaAttendance10,871 (9,764 paid)[1]Total gate$5,101,740[1]Buyrate1,600,000[2]Total purse$1,790,000Event chronology The Ultimate Fighter: United States vs. United Kingdom Finale UFC 100 UFC 101: Declaration UFC 100 was a mixed martial arts event produced by the Ultimate Fighting Championship...

 

Islam Itu IndahGenreIslamiPembuatTim Programming Trans TVPresenter Muhammad Nur Maulana Fadli Muhammad Oki Setiana Dewi Negara asal IndonesiaBahasa asliIndonesiaJmlh. musim13Jmlh. episode4.522 (masih tayang 27 Agustus 2023)ProduksiDurasi90 menit (05:00-06:30 WIB)Rumah produksiTim Programming Trans TVRilis asliJaringanTrans TVRilisMinggu, 30 Januari 2011 –Sekarang Islam Itu Indah adalah acara kajian Islami yang ditayangkan perdana pada 30 Januari 2011 & tayang setiap hari pukul...

 

English female cricketer, businesswoman and life peer The Right Honourable The Baroness Heyhoe Flint OBE DLIn the House of Lords in 2015Personal informationFull nameRachael Heyhoe FlintBorn(1939-06-11)11 June 1939Wolverhampton, EnglandDied18 January 2017(2017-01-18) (aged 77)BattingRight-handedBowlingRight-arm leg breakRoleBatterInternational information National sideEngland (1960–1982)Test debut (cap 51)2 December 1960 v South AfricaLast Test1 July 1979...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Studio Building Toronto – news · newspapers · books · scholar · JSTOR (November 2009) (Learn how and when to remove this template message) Historic site in Ontario, CanadaThe Studio BuildingLocation25 Severn StreetToronto, Ontario, CanadaBuilt1914Original ...

 

For the Community Radio licensed station in Withernsea, see Seaside FM. Radio stationSeaside Hospital RadioBroadcast areaWorthing Hospital and Southlands HospitalFrequencyHospicom Bedside System, hospital wifi and online webcast streamHistoryFirst air date1972LinksWebsitehttp://www.seasidehr.com Seaside Hospital Radio (known until 2004 as Radio Southlands)[1] is a Hospital Radio service broadcasting to both Worthing and Southlands Hospitals in West Sussex, England from a studio site i...

 
Kembali kehalaman sebelumnya