Что такое int
Целочисленный тип int — это основной тип данных для хранения чисел.
В Arduino Uno (и других платах на базе микроконтроллеров ATmega) переменные типа int хранят 16-битные (2-байтовые) значения. Такая размерность дает диапазон от -32768 до 32767 (минимальное значение -2^15 и максимальное значение (2^15 )-1).
В Arduino Due переменные типа int — 32-битные (4-байта), что дает возможность хранить значения в диапазоне от -2 147 483 648 до 2 147 483 647 (минимальное значение -2^31 и максимальное значение (2^31)-1).
В переменных типа int отрицательные числа представляются с помощью техники дополнительного кода. Старший бит, который иногда называют «знаковым битом», указывает на то, является ли данное число отрицательным. Остальные биты инвертируются, после чего к результату добавляется 1.
Ардуино берет на себя обработку отрицательных чисел, поэтому арифметические операции с ними выглядят так, как вы этого ожидаете. Неожиданные сложности могут возникнуть только при работе с оператором сдвига вправо >>.
Пример:
int ledPin = 13;
Синтаксис
int var = val;
- var — имя вашей переменной типа int
- val — значение, присваиваемое этой переменной
Подсказка
В ситуациях, когда значение переменной стремится превысить свой максимум, оно сбрасывается в минимальное значение, причем данный принцип работает в оба направления. Например, для 16-битной переменной int:
int x; x = -32768; x = x - 1; // в x теперь хранится 32767 - произошел сброс в отрицательном направлении x = 32767; x = x + 1; // в результате сброса в x теперь хранится -32768
Смотрите также
- byte
- unsigned int
- long
- unsigned long
- Целочисленные константы
- Объявление переменных
Python для подготовки к олимпиадам, начальный уровень (7-9 классы) (СОШ г. Набережные Челны)
Теоретический материал по теме «Целочисленная арифметика»
Целочисленный тип (int) в Python
Д.П. Кириенко — Программирование на языке Python (школа 179 г. Москвы)
Для хранения целых чисел в Python используется тип int (от англ, integer — целое число). Этот тип позволяет хранить как положительные, так и отрицательные числа, при этом сколь угодно большие (в отличие от большинства языков программирования, где целочисленная переменная обычно занимает лишь несколько байт). Более точно, размер числа ограничен лишь имеющейся памятью.
Для преобразования к целому типу используется функция одноименная с именем типа — int:
s = int(input()) t = int(2.5)
Для целых чисел определены арифметические операции:
* умножение (пропускать его в выражениях вида 2 * х нельзя);
\// целочисленное деление (дробная часть отбрасывается);
\% остаток от деления;
** возведение в степень.
В арифметических выражениях порядок действий соответствует принятому в математике, для изменения порядка действий используются круглые скобки:
(х — а) * 2 — (а — (1 — с))
Функция abs(x) возвращает модуль (абсолютное значение) числа х.
Присваивания вида х = х + а, х = х // а и т.п. можно писать сокращенно: х += а, х //= а.
Пример считывания одного числа
s = int(input ())
Пример считывания двух чисел, вводимых в разных строчках
s = int(input()) t = int(input ())
Пример считывания двух чисел, вводимых в одной строке через пробел
s, t = map(int, input().split()) # читаем строку, режем по пробелу # с помощью split, и к каждой части # применяем функцию int
Что делает функция int в Python?
Встроенная в Python функция int() возвращает целое число в десятичной системе счисления. Синтаксис выглядит следующим образом:
int(x, base=10)
, где x число или строка, которую можно преобразовать в целое число, т.е. строка должна быть символьным представлением целого числа, в противном случае сгенерируется исключение типа ValueError .
print(int('45')) # => 45 int('asd') # => Traceback (most recent call last): # => File "", line 1, in # => ValueError: invalid literal for int() with base 10: 'asd'
base — необязательный аргумент: число, представляющее числовой формат системы счисления (по умолчанию: 10). Позволяет преобразовывать строку с определенным префиксом в целое число с учетом указанного основания системы счисления для двоичной (‘0b’), восьмеричной (‘0o’) и шестнадцатеричной (‘0x’).
print(int("0xf", base = 16)) # => 15 print(int("0o11", base = 8)) # => 9 print(int("0b101", base = 2)) # => 5
Если передать функции целое число, то она вернет его же. Если передать вещественное (дробное) число, то оно будет округлено до целого в сторону нуля (отбрасывая дробную часть).
print(int(-10)) # => -10 print(int(10.87)) # => 10
Функция int() вызванная без аргументов вернет 0.
Функция int
В языке программирования Python встроенная функция int() возвращает целое число (экземпляр класса int ) в десятичной системе счисления. Если преобразовать переданный в функцию первый или единственный аргумент в десятичное число не удается, то генерируется исключение ValueError .
Если вызвать функцию int() без аргументов, она вернет 0.
>>> int() 0
Чаще всего функции int() передают один аргумент, который может быть либо строкой, либо числом. Строки должны быть символьными представлениями целого числа, иначе будет выброшено исключение.
>>> int('4') 4 >>> int('3a') Traceback (most recent call last): File "", line 1, in int('3a') ValueError: invalid literal for int() with base 10: '3a'
Если передать функции целое число, то она вернет его же. Если передать вещественное число, то оно будет округлено до целого в сторону нуля (т. е. дробная часть будет отброшена).
>>> int(87) 87 >>> int(-103) -103 >>> int(234.879) 234 >>> int(-0.3) 0 >>> int(-0.9) 0
Попытка преобразовать строку, содержащую вещественное число, в целое число с помощью функции int() вызывает ошибку.
>>> int('101.1') Traceback (most recent call last): File "", line 1, in int('101.1') ValueError: invalid literal for int() with base 10: '101.1'
Чтобы преобразовать дробное число в строковом представлении в целое число, сначала можно использовать функцию float() , затем int() .
>>> int(float('15.76')) 15
В случае, когда указывается второй аргумент для функции int() , первый всегда должен быть строкой. С помощью второго аргумента сообщается, в какой системе счисления находится число, указанное в строке первого аргумента. Функция int() возвращает его значение в десятичной системе счисления.
>>> int('12', 8) 10 >>> int('13h', 20) 477 >>> int('111001', 2) 57
Основание системы счисления не должно превышать 36.
>>> int('w0y', 36) 41506 >>> int('w0y', 37) Traceback (most recent call last): File "", line 1, in ValueError: int() base must be >= 2 and
Для двоичной, восьмеричной и шестнадцатеричной систем счисления можно использовать префиксы. Если такое представление числа заключается в кавычки, то второй аргумент обязателен.
>>> int(0b11) 3 >>> int(0o10) 8 >>> int(0xA5) 165 >>> int('0b11') Traceback (most recent call last): File "", line 1, in int('0b11') ValueError: invalid literal for int() with base 10: '0b11' >>> int('0b11', 2) 3
В классах функцию int() переопределяют методы __int__() , __index__() , __trunc__() .
>>> class A: . a = 'H' . def __int__(self): . return ord(self.a) . >>> obj = A() >>> int(obj) 72 >>> obj.a = '!' >>> int(obj) 33