Знаковые числа: Знаковые целые числа

Содержание

Целое число (информатика) — Integer (computer science)

Датум интегрального типа данных

В компьютерной науке, целое является ИГД из интегрального типа данных , с типом данных , который представляет некоторый диапазон математических чисел . Интегральные типы данных могут быть разных размеров и могут содержать или не содержать отрицательные значения. Целые числа обычно представлены в компьютере как группа двоичных цифр (битов). Размер группировки варьируется, поэтому набор доступных целочисленных размеров варьируется для разных типов компьютеров. Компьютерное оборудование, включая виртуальные машины , почти всегда обеспечивает способ представления регистра процессора или адреса памяти в виде целого числа.

Ценность и представление

Значение какого — либо пункта с интегральным типом является математическим целым числом , что оно соответствует. Целые типы могут быть беззнаковыми (способными представлять только неотрицательные целые числа) или знаковыми

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

Целочисленное значение обычно указывается в исходном коде программы как последовательность цифр, необязательно с префиксом + или -. Некоторые языки программирования допускают другие обозначения, например шестнадцатеричные (основание 16) или восьмеричные (основание 8). Некоторые языки программирования также допускают разделители групп цифр .

Внутреннее представление этого элемента данных является то , как значение сохраняется в памяти компьютера. В отличие от математических целых чисел, типичные данные в компьютере имеют минимальное и максимальное возможное значение.

Наиболее распространенное представление положительного целого числа — это строка битов в двоичной системе счисления . Порядок байтов памяти, в которых хранятся биты, варьируется; видеть порядок байтов . Ширина или точности интегрального типа является числом бит в его представлении. Целочисленный тип с

n битами может кодировать 2 n чисел; например, беззнаковый тип обычно представляет неотрицательные значения от 0 до 2 n -1. Другие кодировки целочисленных значений для битовых комбинаций иногда используются, например , двоично-кодированной десятичной или код Грея , или в виде печатных кодов символов , таких как ASCII .

Существует четыре хорошо известных способа представления чисел со знаком в двоичной вычислительной системе. Наиболее распространенным является дополнение до двух , которое позволяет целочисленному типу со знаком с n битами представлять числа от −2 ( n −1) до 2 ( n −1) −1. Арифметика с дополнением до двух удобна тем, что существует идеальное взаимно однозначное соответствие между представлениями и значениями (в частности, нет отдельных +0 и -0), и потому , что сложение , вычитание и умножение не должны различать подписанные и беззнаковые типы . Другие возможности включают двоичное смещение , величину знака и дополнение до единиц .

Некоторые компьютерные языки определяют целочисленные размеры машинно-независимым способом; другие имеют разные определения в зависимости от размера слова процессора. Не все языковые реализации определяют переменные всех целочисленных размеров, а определенные размеры могут даже не различаться в конкретной реализации. Целое число на одном языке программирования может иметь другой размер на другом языке или на другом процессоре.

Общие интегральные типы данных

Биты имя Диапазон (при условии , двоичное дополнение для подписано ) Десятичные цифры Использует Реализации
C / C ++ C # Паскаль и Дельфи Ява SQL FORTRAN D

4

клев , semioctet Подпись: от −8 до 7, от — (2 3 ) до 2 3  — 1

1

Десятичное представление с двоичным кодом , одно десятичное представление н / д н / д н / д н / д н / д н / д н / д
Без знака: от 0 до 15, что равно 2 4  — 1

2

8

байт , октет , i8, u8 Подпись: от −128 до 127, от — (2 7 ) до 2 7  — 1

3

Символы ASCII , кодовые единицы в кодировке символов UTF-8 int8_t , знаковый символ сбайт Shortint байт tinyint целое число (1) байт
Без знака: от 0 до 255, что равно 2 8  — 1.

3

uint8_t , символ без знака байт Байт н / д беззнаковый tinyint н / д убайт

16

полуслова, слово , короткое, i16, u16 Подпись: от −32 768 до 32 767, от — (2 15 ) до 2 15  — 1

5

Символы UCS-2 , кодовые единицы в кодировке символов UTF-16 int16_t , короткий , int короткая Смоллинт короткая Smallint целое число (2) короткая
Без знака: от 0 до 65 535, что равно 2 16  — 1

5

uint16_t, беззнаковый , беззнаковый int ushort слово char беззнаковый smallint н / д ushort

32

слово, длинное , двойное слово, длинное слово, int, i32, u32 Подпись: от −2 147 483 648 до 2 147 483 647 , от — (2 31 ) до 2 31  — 1

10

Символы UTF-32 , истинный цвет с альфа- каналом , FourCC , указатели в 32-битных вычислениях int32_t , int , длинный int LongInt ; Целое число int int целое число (4) int
Без знака: от 0 до 4294967295, что равно 2 32  — 1

10

uint32_t, беззнаковый , беззнаковый int , беззнаковый длинный uint LongWord ; DWord ; Кардинал н / д беззнаковое целое н / д uint

64

слово, двойное слово, длинное слово, длинное длинное, четверное, четверное слово, qword, int64, i64, u64 Подписано: от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 , от — (2 63 ) до 2 63  — 1

19

Время (миллисекунды с эпохи Unix ), указатели в 64-битных вычислениях int64_t , длинный , длинный длинный долго Int64 долго Bigint целое число (8) долго
Без знака: от 0 до 18 446 744 073 709 551 615, что равно 2 64  — 1.

20

uint64_t , беззнаковый длинный длинный Улонг UInt64 ; QWord н / д беззнаковый bigint н / д Улонг

128

октаворд, двойное квадрослово, i128, u128 Подписано: от -170,141,183,460,469,231,731,687,303,715,884,105,728 до 170,141,183,460,469,231,731,687,303,715,884,105,727, с — (2 127 ) до 2 127  — 1

39

Сложные научные расчеты,

Адреса IPv6 , GUID

C: доступно только как нестандартное расширение для конкретного компилятора н / д н / д н / д н / д целое число (16) цент
Без подписи: от 0 до 340 282 366 920 938 463 463 374 607 431 768 211 455, что равно 2
128
 — 1.

39

н / д ucent

п

n -битное целое число
(общий случай)
Со знаком: — (2 n −1 ) до (2 n −1  — 1) ⌈ ( n  — 1) журнал 10  2⌉ Ada : диапазон -2 ** (n-1) .. 2 ** (n-1) -1
Без знака: от 0 до (2 n — 1) n журнал 10  2⌉ Ada: диапазон 0..2 ** n-1 , mod 2 ** n ; Классы BigDecimal или Decimal стандартных библиотек или сторонних произвольных арифметических библиотек на многих языках, таких как Python, C ++ и т. д.

Разные ЦП поддерживают разные интегральные типы данных. Обычно оборудование поддерживает как подписанные, так и беззнаковые типы, но только небольшой фиксированный набор значений ширины.

В приведенной выше таблице указаны значения ширины целого типа, которые аппаратно поддерживаются общими процессорами. Языки программирования высокого уровня предоставляют больше возможностей. Обычно используется целочисленный тип двойной ширины, который имеет вдвое больше битов, чем самый крупный тип, поддерживаемый оборудованием. Во многих языках также есть типы битовых полей (определенное количество битов, обычно ограничиваемое максимальной шириной, поддерживаемой оборудованием) и типы диапазонов (которые могут представлять только целые числа в указанном диапазоне).

Некоторые языки, такие как Lisp , Smalltalk , REXX , Haskell , Python и Raku, поддерживают целые числа произвольной точности (также известные как целые числа бесконечной точности или большие числа ). Другие языки , которые не поддерживают эту концепцию в качестве конструкции верхнего уровня может иметь библиотеки , доступные для представления очень больших чисел с использованием массивов меньших переменными, такими , как в Java BigInteger класс или Perl «s„ BigInt пакет“. Они используют столько памяти компьютера, сколько необходимо для хранения чисел; однако компьютер имеет ограниченный объем памяти, поэтому они также могут представлять только конечное подмножество математических целых чисел. Эти схемы поддерживают очень большие числа, например, один килобайт памяти можно использовать для хранения чисел длиной до 2466 десятичных цифр.

Тип Boolean или Flag — это тип, который может представлять только два значения: 0 и 1, обычно идентифицируемые как false и true соответственно. Этот тип может храниться в памяти с использованием одного бита, но часто ему дается полный байт для удобства адресации и скорости доступа.

Четырехбитная величина известна как полубайт (при еде, меньший, чем укус ) или полубайт (каламбур на форме байта слова ). Один полубайт соответствует одной цифре в шестнадцатеричном формате и содержит одну цифру или знаковый код в десятичном виде с двоичной кодировкой.

Байты и октеты

Термин « байт» изначально означал «наименьшую адресуемую единицу памяти». Раньше использовались 5-, 6-, 7-, 8- и 9-битные байты. Также были компьютеры, которые могли адресовать отдельные биты («машина с битовой адресацией») или которые могли адресовать только 16- или 32-битные величины («машина с адресацией по словам»). Термин « байт» обычно вообще не использовался в отношении машин с битовой и словарной адресацией.

Термин октет всегда относится к 8-битовой величине. Он в основном используется в области компьютерных сетей , где компьютеры с разной шириной байта могут взаимодействовать.

В современном использовании байт почти всегда означает восемь бит, поскольку все остальные размеры вышли из употребления; таким образом, байт стал синонимом октета .

Слова

Термин «слово» используется для небольшой группы битов, которые обрабатываются одновременно процессорами определенной архитектуры . Таким образом, размер слова зависит от процессора. Использовались слова разных размеров, включая 6, 8, 12, 16, 18, 24, 32, 36, 39, 40, 48, 60 и 64 бит. Поскольку это архитектурно, размер слова обычно устанавливается первым процессором в семействе, а не характеристиками более позднего совместимого процессора. Значения терминов , полученные из слова , такие как LongWord , двойное слово , четверное слово , и полуслово , также изменяются в зависимости от процессора и операционной системой.

Практически все новые настольные процессоры способны использовать 64-битные слова, хотя встроенные процессоры с 8- и 16-битным размером слова все еще распространены. 36-битная длина слова была распространена в первые дни компьютеров.

Одной из важных причин непереносимости программного обеспечения является неправильное предположение, что все компьютеры имеют тот же размер слова, что и компьютер, используемый программистом. Например, если программист, использующий язык C, неправильно объявляет как int переменную, которая будет использоваться для хранения значений больше 2 15 -1, программа завершится ошибкой на компьютерах с 16-битными целыми числами. Эта переменная должна была быть объявлена ​​как длинная , которая на любом компьютере имеет как минимум 32 бита. Программисты также могут ошибочно предполагать, что указатель может быть преобразован в целое число без потери информации, что может работать на (некоторых) 32-разрядных компьютерах, но не работать на 64-разрядных компьютерах с 64-разрядными указателями и 32-разрядными целыми числами. Эта проблема решена C99 в stdint.h в форме intptr_t .

Короткое целое число

Короткое целое может представлять собой целое число , которое может принимать меньше памяти, в то время как имеющую меньший диапазон, по сравнению со стандартным целым числом на ту же машину.

В C он обозначается коротким . Он должен быть не менее 16 битов и часто меньше стандартного целого числа, но это не обязательно. Соответствующая программа может предполагать, что она может безопасно хранить значения от — (2 15 -1) до 2 15 -1, но не может предполагать, что диапазон не больше. В Java , короткое это всегда 16-разрядное целое число. В Windows API тип данных SHORT определяется как 16-разрядное целое число со знаком на всех машинах.

Общие короткие целые числа
Язык программирования Имя типа данных Подпись Размер в байтах Минимальное значение Максимальное значение
C и C ++ короткая подписанный 2 −32 767 +32 767
беззнаковый короткий беззнаковый 2 0 65 535
C # короткая подписанный 2 −32 768 +32 767
ushort беззнаковый 2 0 65 535
Ява короткая подписанный 2 −32 768 +32 767

Длинное целое

Длинное целое может представлять собой целое число , чей диапазон больше или равен стандартного целое число на ту же машину.

В C он обозначается длинным . Он должен быть не менее 32 бита и может быть или не быть больше стандартного целого числа. Соответствующая программа может предполагать, что она может безопасно хранить значения от — (2 31 -1) до 2 31 -1, но не может предполагать, что диапазон не больше.

Обычные длинные целые числа
Язык программирования Тип утверждения Платформы Имя типа данных Хранение в байтах Подписанный диапазон Беззнаковый диапазон
C ISO / ANSI C99 Международный стандарт Unix , 16/32-битные системы
Windows , 16/32/64-битные системы
долго 4
(минимальное требование 4)
От −2 147 483 647 до +2 147 483 647 От 0 до 4294967295
(минимальное требование)
C ISO / ANSI C99 Международный стандарт Unix ,
64-битные системы
долго 8
(минимальное требование 4)
От −9,223,372,036,854,775,807 до +9,223,372,036,854,775,807 От 0 до 18 446 744 073 709 551 615
C ++ ISO / ANSI Международный стандарт Unix , Windows ,
16/32-битная система
долго 4
(минимальное требование 4)
От −2 147 483 648 до +2 147 483 647
От 0 до 4294967295
(минимальное требование)
C ++ / CLI Международный стандарт
ECMA-372
Unix , Windows ,
16/32-битные системы
долго 4
(минимальное требование 4)
От −2 147 483 648 до +2 147 483 647
От 0 до 4294967295
(минимальное требование)
VB Стандарт компании Windows Долго 4 От −2 147 483 648 до +2 147 483 647 Нет данных
VBA Стандарт компании Windows , Mac OS X Долго 4 От −2 147 483 648 до +2 147 483 647 Нет данных
SQL Server Стандарт компании Windows BigInt 8 От −9,223,372,036,854,775,808 до +9,223,372,036,854,775,807 От 0 до 18 446 744 073 709 551 615
C # / VB.NET Международный стандарт ECMA Microsoft .NET long или Int64 8 От −9,223,372,036,854,775,808 до +9,223,372,036,854,775,807 От 0 до 18 446 744 073 709 551 615
Ява Международный / Стандарт компании Платформа Java долго 8 От −9,223,372,036,854,775,808 до +9,223,372,036,854,775,807 Нет данных
Паскаль ? Windows , UNIX int64 8 От −9,223,372,036,854,775,808 до +9,223,372,036,854,775,807 0 до 18 446 744 073 709 551 615 (тип Qword)

Долго долго

В C99 версии языка программирования С и C ++ 11 версии C ++ , long long тип поддерживается , который имеет двойную минимальную мощность стандарта long . Этот тип не поддерживается компиляторами, которым требуется, чтобы код C был совместим с предыдущим стандартом C ++, C ++ 03, поскольку тип long long не существовал в C ++ 03. Для компилятора, совместимого с ANSI / ISO , должны быть выполнены минимальные требования для указанных диапазонов, то есть от — (2 63 -1) до 2 63 -1 для подписанных и от 0 до 2 64 -1 для беззнаковых; однако расширение этого диапазона разрешено. Это может быть проблемой при обмене кодом и данными между платформами или при прямом доступе к оборудованию. Таким образом, существует несколько наборов заголовков, обеспечивающих независимые от платформы типы точной ширины. Стандартная библиотека C предоставляет stdint.h ; это было введено в C99 и C ++ 11.

Смотрите также

Ноты

Рекомендации

Целые числа без знака и со знаком

Лекция №8

«Международный факультет прикладных информационных технологий

Бакалавриат «Информатика и вычислительная техника»

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

Определение. Байтом называется последовательность из восьми бит. Байт является минимально адресуемым элементом памяти.

Определение. Словом называется последовательность из двух байтов. Адресом слова является адрес младшего байта и всегда является положительным (ноль рассматриваем как положительное число). Длина слова равна 16 битам.

Определение. Двойным словом называется последовательность из четырёх байтов. Адресом двойного слова является адрес младшего байта и всего является положительным (ноль рассматриваем как положительное число). Длина двойного слова равно 32 битам.

 

Рассмотрим следующие виды чисел, представляемых в памяти машины:

целые числа без знака

целые числа со знаком

числа с фиксированной запятой (точкой)

числа с плавающей запятой (точкой)

 

Целые числа без знака и со знаком

Числа без знака получили свое название потому, что среди этих чисел нет отрицательных. Количество различных чисел, которые можно записать в байте, слове или двойном слове определяется числом сочетаний с повторениями из 2 соответственно по 8, 16, 32. Таким образом, количество различных чисел следующее:

28 = 256 для байта

216 = 65536 для слова

232 = 4294967296 для двойного слова.

 

Целые числа без знака – это самый простой вид чисел: они представляют собой весь диапазон двоичных чисел, которые можно записать в байте, слове или двойном слове.

Диапазоны изменения целых чисел без знака следующие:

00H ( 0) — FF (255) для байта;

0000 ( 0) – FFFF (65535) для слова;

00000000 ( 0) – FFFFFFFF (4294967295) для двойного слова.



 

В представлении целых числа со знаком старший разряд используется как знаковый, а остальные используются для записи числа. Диапазоны изменения целых чисел со знаком следующие:

80H (-128) — 7FH (127)

8000H (-32768) — 7FFF (32767)

 

Определение. Прямым кодом называется двоичная запись неотрицательного целого числа.

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

Определение. Дополнительным кодом называется запись, полученная прибавлением 1 (единицы) к обратному коду.

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

 

Исходное двоичное число (соответствует десятичному 65)
Инверсные биты:
Плюс 1, т.е. дополнительный код (соответствует десятичному числу (-65)

 

Сумма 65 и (-65) должна составлять ноль. Получим:

 

Все восемь бит имеют нулевое значение. Перенос единичного бита влево потерян.

 

Следует подчеркнуть, что знак числа условен. Одно и то же число, например FBH можно интерпретировать как число со знаком, так и число без знака.

Если битовую комбинацию представленную шестнадцатеричным числом FBH рассматривать как целое со знаком, то её значение будет равно (-5).

 

Если битовую комбинацию представленную шестнадцатеричным числом FBH рассматривать как целое без знака, то её значение будет рано 251.

 

Дадим выборочную таблицу 16-битовых чисел с указанием из машинного представления, а также значений без знака и со знаком. Из этой таблицы видно, что чисел со знаком размером в слово диапазон положительных значений простирается от 0 до 32767, а диапазон отрицательных значений до (-1) до (-32768).

 

16-ричное представление Десятичное представление без знака Десятичное представление со знаком  
0000H Ноль
0001H +1 Минимальное положительное число
0002H +2  
0003H +3  
0004H +4  
 
7FFCH +32764  
7FFDH +32765  
7FFEH +32766  
7FFFH +32767 Максимальное положительное число
8000H -32768 Минимальное отрицательное число
8001H -32767  
8002Н -32766  
8003H -32765  
 
FFFBH -0005  
FFFCH -0004  
FFFDH -0003  
FFFEH -0002  
FFFFH -0001 Минимальное отрицательное число

 

Среди команд процессора, выполняющих обработку чисел, можно выделить команды, безразличные к знаку числа (например, inc, add), команды предназначенные для обработки чисел без знака (ja, jb), а также команды, специально рассчитанные на обработку чисел со знаком (jg, jl).

 

Округление чисел с плавающей запятой (точкой)

Стандарт IEEE 754 описывает операции сложения, умножения, вычитания, деления, вычисления остатка от деления, извлечения квадратного корня и преобразований между различными типами чисел. Общий принцип всех операций заключается в том, что результат получается из точного путем приведения к представимому числу согласно установленному режиму округления.

В стандарте определены четыре режима округления:

округление к ближайшему представимому числу;

округление к –∞;

округление к +∞;

округление к 0.

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

При округлении к –∞ результатом является ближайшее представимое число, не превосходящее точного значения.

При округлении к +∞ — ближайшее представимое число, которое не меньше точного значения

При округлении к 0 — ближайшее представимое число, не превосходящее по абсолютной величине точного значения.

Определение. Округление к –∞, округление к +∞, округление к 0 называются режимами прямого округления (directed rounding).

Для иллюстрации режимов округления рассмотрим примеры. В первом примере требуется округлить число с заданной мантиссой к ближайшему представимому числу одинарной точности:

исходная мантисса: 101010101010101010101010111111112

округленная мантисса: 101010101010101010101010000000002

В следующем примере требуется округлить число с заданной мантиссой в сторону 0:

исходная мантисса: 101010101010101010101011111111112

округленная мантисса: 101010101010101010101010000000002

 

 

Таблица 3. Примеры округления чисел до десятых
исходное число к ближ. представимому к нулю к +∞ к -∞
1,33 1,3 1,3 1,4 1,3
-1,33 -1,3 -1,3 -1,3 -1,4
1,37 1,4 1,3 1,4 1,3
-1,37 -1,4 -1,3 -1,3 -1,4
1,35 1,4 1,3 1,4 1,3
-1,35 -1,4 -1,3 -1,3 -1,4

Исключения

Стандартом IEEE 754 определены пять типов исключений:

¾ invalid operation — некорректная операция;

¾ division by zero — деление на нуль;

¾ overflow — переполнение;

¾ underflow — потеря значимости;

¾ inexact — потеря точности.

В стандарте приводится список ситуаций, в которых выставляется исключение invalid operation. Ниже представлены некоторые из них:

¾ любые операции над SNaN;

¾ сложение бесконечностей с разными знаками или вычитание бесконечностей с одинаковыми знаками;

¾ умножение 0 · ∞;

¾ деление 0/0 или ∞/∞;

¾ взятие остатка от деления x rem y, где y = 0 или x = ∞;

¾ извлечение квадратного корня из отрицательного числа.

Рассмотрим остальные исключения на примере деления чисел двойной точности в режиме округления к 0.

Исключение division by zero выставляется, когда делитель равен нулю.

Обязательное условие возникновения исключения — не равное нулю или бесконечности делимое. В случае возникновения исключения division by zero

результат равен бесконечности:

делимое: 7FEFFFFFFFFFFFFF16 (1.797693e+308)

делитель: 000000000000000016 (+0)

частное: 7FF000000000000016 (+∞)

исключения: division by zero

 

Исключение overflow возникает, когда результат операции превышает (по абсолютной величине) наибольшее представимое число:

 

делимое: 7FEFFFFFFFFFFFFF16 (1.797693e+308)

делитель: 0003A6B50B0F27BB16 (5.077619e–309)

частное: 7FEFFFFFFFFFFFFF16 (1.797693e+308)

исключения: overflow и inexact

 

Исключение underflow возникает, когда результат операции настолько мал (по абсолютной величине), что он может быть представлен только денормализованным числом:

 

делимое: 001000000000000016 (2.225074e–308)

делитель: 7FEFFFFFFFFFFFFF16 (1.797693e+308)

частное: 000000000000000016 (+0)

исключения: underflow и inexact

 

Исключение inexact возникает, когда результат операции отличается от точного

значения:

делимое: 27E83F0F3FFC953816 (1.786431e+000)

делитель: FBAF43813FFFFFFF16 (2.000000e+000)

частное: 2BC3037F3FEC953816 (8.932153e–001)

исключения: inexact

 

Алгоритм Малкома

В начале семидесятых годов 20-го века Malcolm и Gentleman предложили алгоритм для вывода некоторых характеристик систем с плавающей точкой.

A := 1.0;

B := 1.0;

while ((A+1.0)-A)-1.0 = 0.0

A := 2 * A;

while ((A+B)-A)-B <> 0.0

B := B + 1.0;

return(B)

Двоичные файлы

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

Двоичные программные файлы являются микропроцессорно-ориентированными. Это означает, что программа, написанная для компьютера IBM PC, может быть выполнена только на компьютере, имеющей ту же самую систему команд.

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

Текстовые файлы.

Если каждому символу алфавита сопоставить определенное число (например, порядковый номер), то с помощью двоичного кода можно кодировать и текстовую информацию. Восьми двоичных разрядов достаточно для кодирования 256 различных символов. Этого хватит, чтобы выразить различными комбинациями восьми битов все символы английского и русского алфавитов, как строчные, так и прописные, а также знаки препинания, символы основных арифметических действий и некоторые общепринятые специальные символы, например «@».

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

Для английского языка, ставшего международным средством общения, противоречия уже сняты. Институт стандартизации США (ANSI – American Standard Institute) ввел в действие систему кодирования ASCII (American Standard Code for Information Interchange – стандартный код информационного обмена США). В системе ASCII закреплены две таблицы кодирования – базовая и расширенная. Базовая таблица закрепляет значения кодов от 0 до 127, а расширенная относится к символам от 128 до 255.

ASCII-код

С целью стандартизации в компьютерах используется американский национальный стандартный код для обмена информацией ASCII (American National Standard Code for Information). Наличие стандартного кода облегчает обмен данными между различными устройствами. Восьмибитовый расширенный ASCII-код обеспечивает представление 256 символов, включая символы для национальных алфавитов.

Но 01000001 представляет также букву А. Таким образом одна и та же комбинация из восьми битов может представлять как число, так и букву, а данном случае комбинаций 01000001 это 65, а с другой стороны – буква А. Все зависит от интерпретации битового содержания.

Если программа определяет элемент данных для арифметических целей, то 01000001 представляет двоичное число, эквивалентное десятичному числу 65.

Если программа определяет элемент данных (один смежный байт или более), имея в виду его описание, как, например, заголовок, тогда 01000001 представляет собой букву или «строку».

При программировании это различие становится понятным, так как назначение каждого элемента данных определено.

Закономерно возникает вопрос, откуда компьютер «знает», что значения восьми бит 01000001 представляют букву А. Когда на клавиатуре нажата клавиша А, операционная система принимает сигнал от этой конкретной клавиши в байт памяти. Это сигнал устанавливает биты в значения 01000001. Можно переслать этот байт в память, и если передать его на экран или принтер, то будет сгенерирована буква А.

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

Список литературы

  1. IEEE 754-2008 Standard for Floating-Point Arithmetic
    Институт инженеров по электротехнике и радиоэлектронике
    Официальный стандарт по арифметике с числами с плавающей точкой http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=4610933
  2. ISO/IEC JTC1/SC22/WG14 – Programming Language C
    Стандарт языка программирования высокого уровня C, включающий в себя описание реализации чисел с плавающей точкой в этом языке. http://www.open-std.org/jtc1/sc22/wg14/
  3. ISO/IEC JTC1/SC22/WG21 – Programming Language C++
    Стандарт языка программирования высокого уровня C++, включающий в себя описание реализации чисел с плавающей точкой в этом языке. http://www.open-std.org/JTC1/SC22/WG21/
  4. А.C. Камкин, М.M. Чупилко. Тестирование модулей арифметики с плавающей точкой микропроцессоров на соответствие стандарту IEEE 754. Стр. 7-22. Труды Института системного программирования РАН, том 14, 2008 г. Часть 2. ISSN 2220-6426 (Online), ISSN 2079-8156 (Print). Стр. 7-22. http://www.ispras.ru/ru/proceedings/archives/isp_2008_14_2/isp_2008_14_2_7.php

 

Лекция №8

«Международный факультет прикладных информационных технологий

Бакалавриат «Информатика и вычислительная техника»

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

Определение. Байтом называется последовательность из восьми бит. Байт является минимально адресуемым элементом памяти.

Определение. Словом называется последовательность из двух байтов. Адресом слова является адрес младшего байта и всегда является положительным (ноль рассматриваем как положительное число). Длина слова равна 16 битам.

Определение. Двойным словом называется последовательность из четырёх байтов. Адресом двойного слова является адрес младшего байта и всего является положительным (ноль рассматриваем как положительное число). Длина двойного слова равно 32 битам.

 

Рассмотрим следующие виды чисел, представляемых в памяти машины:

целые числа без знака

целые числа со знаком

числа с фиксированной запятой (точкой)

числа с плавающей запятой (точкой)

 

Целые числа без знака и со знаком

Числа без знака получили свое название потому, что среди этих чисел нет отрицательных. Количество различных чисел, которые можно записать в байте, слове или двойном слове определяется числом сочетаний с повторениями из 2 соответственно по 8, 16, 32. Таким образом, количество различных чисел следующее:

28 = 256 для байта

216 = 65536 для слова

232 = 4294967296 для двойного слова.

 

Целые числа без знака – это самый простой вид чисел: они представляют собой весь диапазон двоичных чисел, которые можно записать в байте, слове или двойном слове.

Диапазоны изменения целых чисел без знака следующие:

00H ( 0) — FF (255) для байта;

0000 ( 0) – FFFF (65535) для слова;

00000000 ( 0) – FFFFFFFF (4294967295) для двойного слова.

 

В представлении целых числа со знаком старший разряд используется как знаковый, а остальные используются для записи числа. Диапазоны изменения целых чисел со знаком следующие:

80H (-128) — 7FH (127)

8000H (-32768) — 7FFF (32767)

 

Определение. Прямым кодом называется двоичная запись неотрицательного целого числа.

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

Определение. Дополнительным кодом называется запись, полученная прибавлением 1 (единицы) к обратному коду.

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

 

Исходное двоичное число (соответствует десятичному 65)
Инверсные биты:
Плюс 1, т.е. дополнительный код (соответствует десятичному числу (-65)

 

Сумма 65 и (-65) должна составлять ноль. Получим:

 

Все восемь бит имеют нулевое значение. Перенос единичного бита влево потерян.

 

Следует подчеркнуть, что знак числа условен. Одно и то же число, например FBH можно интерпретировать как число со знаком, так и число без знака.

Если битовую комбинацию представленную шестнадцатеричным числом FBH рассматривать как целое со знаком, то её значение будет равно (-5).

 

Если битовую комбинацию представленную шестнадцатеричным числом FBH рассматривать как целое без знака, то её значение будет рано 251.

 

Дадим выборочную таблицу 16-битовых чисел с указанием из машинного представления, а также значений без знака и со знаком. Из этой таблицы видно, что чисел со знаком размером в слово диапазон положительных значений простирается от 0 до 32767, а диапазон отрицательных значений до (-1) до (-32768).

 

16-ричное представление Десятичное представление без знака Десятичное представление со знаком  
0000H Ноль
0001H +1 Минимальное положительное число
0002H +2  
0003H +3  
0004H +4  
 
7FFCH +32764  
7FFDH +32765  
7FFEH +32766  
7FFFH +32767 Максимальное положительное число
8000H -32768 Минимальное отрицательное число
8001H -32767  
8002Н -32766  
8003H -32765  
 
FFFBH -0005  
FFFCH -0004  
FFFDH -0003  
FFFEH -0002  
FFFFH -0001 Минимальное отрицательное число

 

Среди команд процессора, выполняющих обработку чисел, можно выделить команды, безразличные к знаку числа (например, inc, add), команды предназначенные для обработки чисел без знака (ja, jb), а также команды, специально рассчитанные на обработку чисел со знаком (jg, jl).

 


Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:

НОУ ИНТУИТ | Лекция | Числа

Аннотация: В лекции подробно рассмотрена работа с числами — целыми и вещественными, знаковыми и беззнаковыми. Дан материал по различным операциям с числами, их преобразовании в другие типы данных, вывод на экран в нужном формате. Материал закрепляется практикой — созданием программы для определения Индекса Массы Тела.

Цель лекции

Получение знаний по работе с числами всех типов, преобразование чисел в другие типы данных, закрепление материала на практике.

Целые числа

В Lazarus (а точнее, в Free Pascal), как и в любом другом языке программирования, числа играют довольно важную роль. Трудно представить себе программу, в которой не использовались бы числа. Даже когда вы просто установите какой-то компонент на форму, автоматически начинают действовать множество настроек. Left, Top, Height, Width — все эти свойства есть в любом визуальном компоненте, и они содержат числа. Числа бывают целые и вещественные, знаковые и беззнаковые.

В этом разделе поговорим о целых числах, как знаковых, так и беззнаковых. Что такое целое число? Это число без запятой, то есть, без десятичной части. Знаковым называют число со знаком: -1, например. Беззнаковое число — это число от нуля и больше.

В программировании базовым целым числом является integer, который мы уже не раз использовали. Но вы, вероятно, догадались, что это не единственный возможный целый тип? Есть разные типы целых чисел, они могут быть со знаком и без него, имеют разный диапазон возможных значений и, соответственно, занимают разный размер оперативной памяти. Разберем эти типы:

Таблица 8.1. Целые числа
ТипДиапазонРазмер в байтах
Byte0…2551
ShortInt-128…1271
Word0…65 5352
Smallint-32 768…32 7672
LongWord0…4 294 967 2954
Cardinal0…4 294 967 2954
LongInt-2 147 483 648…2 147 483 6474
Integer-2 147 483 648…2 147 483 6474
Int648

Обратите внимание, здесь диапазон и размер Integer совпадает с LongInt. Вообще-то, это зависит от режима компилятора FPC. Проект можно скомпилировать в разных режимах, с поддержкой Delphi, например, или TP (Turbo Pascal). По умолчанию, выставлен режим Object Pascal, это можно проверить, выполнив в среде Lazarus команду меню Проект -> Параметры проекта, затем в разделе Параметры компилятора выбрать Обработка. В верхней части там указан Режим синтаксиса, по умолчанию это Object Pascal, но при необходимости его можно и поменять.

Так вот, если там выставлен режим Object Pascal или Delphi, тогда Integer имеет размер 32 бита, или 4 байта. Если же выставлен старый режим Turbo Pascal или Free Pascal, то Integer будет иметь размер в 16 бит или 2 байта, и будет соответствовать типу Smallint.

Зачем нужно такое разнообразие целых типов? В былые времена оперативная память была довольно маленькой. Если сейчас у меня на ПК установлена оперативная память 4 Гб, то когда-то давно я был вынужден обходиться компьютером с процессором 486 и оперативкой аж в 16 мегабайт, и можете поверить, это был далеко не самый худший компьютер! В те времена программисты сражались за каждый байт памяти, переписывая и минимизируя код, выбирая самые маленькие из возможных типы данных. Это называлось оптимизацией кода. Допустим, вам нужно выполнить какой-то цикл 10 раз. Для подсчета шагов цикла вам придется создать переменную целого типа. Но зачем использовать переменную Integer в 4 байта, когда вполне можно обойтись однобайтовым Byte? Сейчас конечно, это не играет такой большой роли, как прежде, но всё равно, оптимизация кода — это признак хорошего программиста, это хороший тон в программировании. Так что старайтесь не тратить понапрасну лишнюю память.

Рекомендации тут следующие: если вы знаете, что число будет без знака, то и выбирайте беззнаковые типы. Если вы точно знаете, что максимальное число в переменной будет маленьким, выбирайте типы поменьше. Если вам неизвестно, какого размера число попадет в переменную, то выбирайте Integer — это универсальный тип, годный для большинства случаев. Ну а если вы уверены, что число будет очень большим, то используйте 4-х или даже 8-ми байтовые типы.

Вещественные числа

Вещественными называются числа с дробной частью, причем, если дробная часть равна нулю, её все равно нужно указать. Например:

Такие числа еще называют числами с плавающей точкой, поскольку количество цифр после точки может быть различным. Записываются вещественные числа по определенным правилам. Если в математике мы дробную часть отделяем запятой, в Lazarus для этого используют точку. При указании очень большого числа можно выбрать сокращенную форму. Если в математике для этого число умножают на десятичную степень, например,

то в Lazarus вместо 10 указывают букву E (от англ. exponent — показатель степени):

Степени могут быть и отрицательными:

Вещественных типов тоже много. В характеристике вещественных чисел роль играет не только размер, занимаемый в памяти, но и количество значащих цифр:

Таблица 8.2. Вещественные числа
ТипДиапазонКоличество значащих цифрРазмер в байтах
Single1.5E-45…3.4E387-84
Real5.0E-324…1.7E30815-168
Double5.0E-324…1.7E30815-168
Comp-2E64+1…2E63-119-208
Currency-922 337 203 685 477.5808 … 922 337 203 685 477.580719-208
Extended1.9E-4932…1.1E493219-2010

Как видите, вещественные числа куда больше целых, процессорного времени на обработку таких чисел тратится тоже больше. Поэтому вещественные числа имеет смысл применять только по необходимости, когда целыми числами явно не обойтись. Не слушайте тех, кто предлагает на все случаи жизни использовать тип Real — и для целых, и для вещественных чисел.

Рекомендации тут такие же, как и для целых чисел — выбирайте типы по необходимости. Особо выделю тип Currency — его создали специально для финансовых расчетов, поэтому для всякого рода бухгалтерских расчетов лучше выбирать именно этот тип, как наиболее точный. Но чаще всего обходятся типом Real (или Double).

Операции над целыми и вещественными числами

Целые числа можно складывать (+), отнимать (-) и умножать (*) друг на друга. С делением дело обстоит сложней. Допустим, нам нужно 10 разделить на 3. Получится 3,33333…, а это уже не целое число. Поэтому для целых чисел в Паскале предусмотрено деление нацело. Операция div обеспечивает деление нацело, и возвращает целую часть, отбрасывая дробную. Например, 10 разделить на 8 будет равно 1,25. Если применить целочисленное деление, то 10 div 8 = 1. Чтобы узнать остаток от такого деления, применяют операцию mod. 10 mod 8 = 2.

Арифметика над вещественными числами еще проще, здесь применяют следующие стандартные операции: + (сложение), — (вычитание), * (умножение), / (деление).

Кроме того, как целые, так и вещественные числа можно сравнивать между собой, используя для этого логические операторы: = (равно), <> (не равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно).

Очень часто приходится использовать большие и сложные выражения, где вместе с арифметическими используются и логические операторы. Здесь главное — не забывать о приоритетах. Возьмем выражение

Что попадет в переменную r? Если вы ответили 11, то вы правы. Чтобы сначала выполнить сложение, его нужно поместить в скобки, которые имеют высший приоритет:

В этом случае, в переменную r попадет число 14.

Таблица 8.3. Приоритеты
ПорядокОперации
1( ) — То, что в круглых скобках, вычисляется в первую очередь
2NOT
3*, /, DIV, MOD, AND
4+, -, OR, XOR
5=, <>, >, <, >=, <=

Примечание: Если в выражении встречаются операции одинакового приоритета, они выполняются слева — направо.

Примечание: Ни целое, ни вещественное число НЕЛЬЗЯ ДЕЛИТЬ НА НОЛЬ! Если такое произойдет, возникнет Исключительная ситуация, и будет выведена ошибка. Программисты обычно всегда проверяют, что и на что пользователь делит. Если он пытается делить на ноль, выводится понятное сообщение об ошибке, а само деление не производится. Это называется «защита от дурака».

§ 1.2. Представление чисел в компьютере






Ключевые слова:

• разряд
• беззнаковое представление целых чисел
• представление целых чисел со знаком
• представление вещественных чисел


1.2.1. Представление целых чисел

Оперативная память компьютера состоит из ячеек, каждая из которых представляет собой физическую систему, состоящую из некоторого числа однородных элементов. Эти элементы обладают двумя устойчивыми состояниями, одно из которых соответствует нулю, а другое — единице. Каждый такой элемент служит для хранения одного из битов — разряда двоичного числа. Именно поэтому каждый элемент ячейки называют битом или разрядом (рис. 1.2).

Рис. 1.2. Ячейка памяти

Для компьютерного представления целых чисел используется несколько различных способов, отличающихся друг от друга количеством разрядов (под целые числа обычно отводится 8, 16, 32 или 64 разряда) и наличием или отсутствием знакового разряда. Беззнаковое представление можно использовать только для неотрицательных целых чисел, отрицательные числа представляются только в знаковом виде.

Беззнаковое представление используется для таких объектов, как адреса ячеек, всевозможные счётчики (например, число символов в тексте), а также числа, обозначающие дату и время, размеры графических изображений в пикселях и т. д.

Максимальное значение целого неотрицательного числа достигается в случае, когда во всех разрядах ячейки хранятся единицы. Для n-разрядного представления оно будет равно 2n-1. Минимальное число соответствует п нулям, хранящимся в n разрядах памяти, и равно нулю.

Ниже приведены максимальные значения для беззнаковых целых n-разрядных чисел:

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

Пример 1. Число 5310 = 1101012 в восьмиразрядном представлении имеет вид:

Это же число 53 в шестнадцати разрядах будет записано следующим образом:

При представлении со знаком самый старший (левый) разряд отводится под знак числа, остальные разряды — под само число. Если число положительное, то в знаковый разряд помещается 0, если число отрицательное — 1. Такое представление чисел называется прямым кодом.

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

На сайте Федерального центра информационно-образовательных ресурсов (http://fcior.edu.ru/) размещён информационный модуль «Число и его компьютерный код». С помощью этого ресурса вы можете получить дополнительную информацию по изучаемой теме.

Для выполнения операций с отрицательными числами используется дополнительный код, позволяющий заменить операцию вычитания сложением. Узнать алгоритм образования дополнительного кода вы можете с помощью информационного модуля «Дополнительный код», размещённого на сайте Федерального центра информационно-образовательных ресурсов (http://fcior.edu.ru/).


1.2.2. Представление вещественных чисел

Любое вещественное число А может быть записано в экспоненциальной форме:

где:

m — мантисса числа;
q — основание системы счисления;
p — порядок числа.

Например, число 472 ООО ООО может быть представлено так: 4,72 • 108, 47,2 • 107, 472,0 • 106 и т. д.

С экспоненциальной формой записи чисел вы могли встречаться при выполнении вычислений с помощью калькулятора, когда в качестве ответа получали записи следующего вида: 4.72Е+8.

Здесь знак «Е» обозначает основание десятичной системы счисления и читается как «умножить на десять в степени».

Из приведённого выше примера видно, что положение запятой в записи числа может изменяться.

Для единообразия мантиссу обычно записывают как правильную дробь, имеющую после запятой цифру, отличную от нуля. В этом случае число 472 ООО ООО будет представлено как 0,472 • 109.

Вещественное число может занимать в памяти компьютера 32 или 64 разряда. При этом выделяются разряды для хранения знака мантиссы, знака порядка, порядка и мантиссы.

Пример:

Диапазон представления вещественных чисел определяется количеством разрядов, отведённых для хранения порядка числа, а точность определяется количеством разрядов, отведённых для хранения мантиссы.

Максимальное значение порядка числа для приведённого выше примера составляет 11111112 = 12710, и, следовательно, максимальное значение числа:

0,11111111111111111111111 • 101111111

Попытайтесь самостоятельно выяснить, каков десятичный эквивалент этой величины.

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

САМОЕ ГЛАВНОЕ

Для компьютерного представления целых чисел используются несколько различных способов, отличающихся друг от друга количеством разрядов (8, 16, 32 или 64) и наличием или отсутствием знакового разряда.

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

При представлении со знаком самый старший разряд отводится под знак числа, остальные разряды — под само число. Бели число положительное, то в знаковый разряд помещается 0, если число отрицательное, то 1. Положительные числа хранятся в компьютере в прямом коде, отрицательные — в дополнительном.

При хранении в компьютере вещественных чисел выделяются разряды на хранение знака порядка числа, самого порядка, знака мантиссы и мантиссы. При этом любое число записывается так:

где:

m — мантисса числа;
q — основание системы счисления;
p — порядок числа.

Вопросы и задания

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

2. Как в памяти компьютера представляются целые положительные и отрицательные числа?

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

4. Представьте число 6310 в беззнаковом 8-разрядном формате.

5. Найдите десятичные эквиваленты чисел по их прямым кодам, записанным в 8-разрядном формате со знаком:

а) 01001100;
б) 00010101.

6. Какие из чисел 4438, 1010102, 25610 можно сохранить в 8-разрядном формате?

7. Запишите следующие числа в естественной форме:

а) 0,3800456 • 102;
б) 0,245 • 10-3;
в) 1,256900Е+5;
г) 9,569120Е-3.

8. Запишите число 2010,010210 пятью различными способами в экспоненциальной форме.

9. Запишите следующие числа в экспоненциальной форме с нормализованной мантиссой — правильной дробью, имеющей после запятой цифру, отличную от нуля:

а) 217,93410;
б) 7532110;
в) 0,0010110.

10. Изобразите схему, связывающую основные понятия, рассмотренные в данном параграфе.

Электронное приложение к уроку


Презентации, плакаты, текстовые файлы Вернуться к материалам урока Ресурсы ЭОР

Cкачать материалы урока


Диапазон значений знаковых чисел

⇐ ПредыдущаяСтр 3 из 4Следующая ⇒

Рассмотрим однобайтовое представление. Возможные дополнительные коды знаковых чисел:

0111 1111

. . .

0000 0001

0000 0000

1111 1111

1111 1110 Отрицательные числа

. . .

1000 0000

Рассмотрим десятичные значения этих чисел:

0111 1111 = 27 – 1 = 128 — 1 = 127

0000 0001 = 1

0000 0000 = 0

1111 1111 -> -(000 0000 + 1) = -1

1111 1110 -> -(000 0001 + 1) = -2

1000 0000 -> -(111 1111 + 1) = -(1000 0000) = -27 = -128

Таким образом диапазон значений знаковых однобайтовых чисел:
от -128 до 127.

Аналогично, диапазон значений двухбайтовых целых чисел:
-215 — +(215 -1) (от -32768 до 32767).

Диапазон значений четырехбайтовых целых чисел со знаком:
-231 — +(231 – 1) (от -2 147 483 648 до 2 147 483 647)

Сложение и вычитание целых чисел

 

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

Сложение обратных кодов. Здесь при сложении чисел А и В имеют место четыре основных и два особых случая:

1. А и В положительные. При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю. Например:

 

 

Получен правильный результат.

2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например:

 

 

Получен правильный результат в обратном коде. При переводе в прямой код биты цифровой части результата инвертируются: 1 0000111 = –710.

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например:

 

 

Компьютер исправляет полученный первоначально неправильный результат (6 вместо 7) переносом единицы из знакового разряда в младший разряд суммы.

 

4. А и В отрицательные. Например:

 

Полученный первоначально неправильный результат (обратный код чис­ла –1110 вместо обратного кода числа –1010) компьютер исправляет перено­сом единицы из знакового разряда в младший разряд суммы. При переводе результата в прямой код биты цифровой части числа инвертируются: 1 0001010 = –1010.

Переполнение

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

5. А и В положительные, сумма А+В больше, либо равна 2n–1, где n — количество разрядов формата чисел (для однобайтового формата n=8, 2n–1 = 27 = 128). Например:

 

Обратите внимание: в результате сложения положительных чисел полу­чен отрицательный результат!

Семи разрядов цифровой части числового формата недостаточно для раз­мещения восьмиразрядной суммы (16210 = 101000102), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несов­па­де­ние знака суммы и знаков слагаемых, что является свидетельством пере­полнения разрядной сетки.

6. А и В отрицательные, сумма абсолютных величин А и В больше, либо равна 2n–1. Например:

 

В результате сложения отрицательных чисел полу­чен результат > 0!

Здесь знак суммы тоже не совпадает со знаками слагаемых, что сви­де­тельствует о переполнении разрядной сетки.

 

Сложение дополнительных кодов. Здесь также имеют место рассмот­рен­ные выше шесть случаев:

1. А и В положительные. Здесь нет отличий от случая 1, рассмотрен­но­го для обратного кода (коды неотрицательных чисел совпадают).

2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например:

 


Получен правильный результат в дополнительном коде. При переводе в пря­мой код биты цифровой части результата инвертируются и к младшему раз­ря­ду прибавляется единица: 1 0000110 + 1 = 1 0000111 = –710.

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например:

 

 

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

4. А и В отрицательные. Например:

 

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

Случаи переполнения

Для обнаружения переполнения разрядной сетки знаковый разряд дуб­ли­руется. Такое представление чисел называется модифицированным допол­нительным кодом:

1) 65 00 100 0001

+ 97+ 00 110 0001

162 01 010 0010

Разные цифры в знаковых разрядах свидетельствуют о том, что произошло переполнение.

2) -65 11 011 1111

+ -97+ 11 001 1111

-162 10 101 1110

Переполнение!

Для проверки знаковых разрядов используют результат операции “ис­клю­­чающее ИЛИ”, которая дает значение 1 только если операнды различны.

Сравнение рассмотренных форм кодирования целых чисел со зна­ком показывает:

на преобразование отрицательного числа в обратный код компью­тер затрачивает меньше времени, чем на преобразование в дополнитель­ный код, так как последнее состоит из двух шагов — образования обратного кода и прибавления единицы к его младшему разряду;

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

 

Умножение и деление

Во многих компьютерах умножение производится как последователь­ность сложений и сдвигов. Для этого в АЛУ имеется регистр, называемый накапливающим сумматором, который до начала выполнения операции со­держит число ноль. В процессе выполнения операции в нем поочередно раз­мещаются множимое и результаты промежуточных сложений, а по завер­ше­нии операции — окончательный результат.

Другой регистр АЛУ, участвующий в выполнении этой операции, вна­ча­ле содержит множитель. Затем по мере выполнения сложений содержа­ще­еся в нем число уменьшается, пока не достигнет нулевого значения.

Для иллюстрации умножим 1100112 на 1011012.

 

 

 

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

 



Читайте также:

 

Как представляются в компьютере целые числа?

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

Целые числа без знака

Обычно занимают в памяти компьютера один или два байта. В однобайтовом формате принимают значения от 000000002 до 111111112. В двубайтовом формате — от 00000000 000000002 до 11111111 111111112.

Диапазоны значений целых чисел без знака

 

Формат числа в байтах Диапазон
Запись с порядком Обычная запись
0 … 28-1 0 … 255
0 … 216-1 0 … 65535

Примеры:

а) число 7210 = 10010002 в однобайтовом формате:

б) это же число в двубайтовом формате:

в) число 65535 в двубайтовом формате:

Целые числа со знаком

Обычно занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа.

Диапазоны значений целых чисел со знаком

 

Формат числа в байтах Диапазон
Запись с порядком Обычная запись
-27 … 27-1 -128 … 127
-215 … 215-1 -32768 … 32767
-231 … 231-1 -2147483648 … 2147483647

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

В компьютерной технике применяются три формы записи (кодирования) целых чисел со знаком: прямой код, обратный код, дополнительный код.

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

Положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково — двоичными кодами с цифрой 0 в знаковом разряде. Например:

Отрицательные числа в прямом, обратном и дополнительном кодах имеют разное изображение.

1. Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа — двоичный код его абсолютной величины. Например:

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

3. Дополнительный код. Получается образованием обратного кода с последующим прибавлением единицы к его младшему разряду. Например:

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

 

Как компьютер выполняет арифметические действия над целыми числами?

Сложение и вычитание

В большинстве компьютеров операция вычитания не используется. Вместо нее производится сложение обратных или дополнительных кодов уменьшаемого и вычитаемого. Это позволяет существенно упростить конструкцию АЛУ.

Сложение обратных кодов. Здесь при сложении чисел А и В имеют место четыре основных и два особых случая:

1. А и В положительные. При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю. Например:


Получен правильный результат.

2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например:


Получен правильный результат в обратном коде. При переводе в прямой код биты цифровой части результата инвертируются: 1 0000111 = -710.

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например:

Компьютер исправляет полученный первоначально неправильный результат (6 вместо 7) переносом единицы из знакового разряда в младший разряд суммы.

4. А и В отрицательные. Например:

Полученный первоначально неправильный результат (обратный код числа -1110 вместо обратного кода числа -1010) компьютер исправляет переносом единицы из знакового разряда в младший разряд суммы. При переводе результата в прямой код биты цифровой части числа инвертируются: 1 0001010 = -1010.

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

5. А и В положительные, сумма А+В больше, либо равна 2n-1, где n — количество разрядов формата чисел (для однобайтового формата n=8, 2n-1 = 27 = 128). Например:

Семи разрядов цифровой части числового формата недостаточно для размещения восьмиразрядной суммы (16210 = 101000102), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков слагаемых, что является свидетельством переполнения разрядной сетки.

6. А и В отрицательные, сумма абсолютных величин А и В больше, либо равна 2n-1. Например:

Здесь знак суммы тоже не совпадает со знаками слагаемых, что свидетельствует о переполнении разрядной сетки.

Сложение дополнительных кодов. Здесь также имеют место рассмотренные выше шесть случаев:

1. А и В положительные. Здесь нет отличий от случая 1, рассмотренного для обратного кода.

2. А положительное, B отрицательное и по абсолютной величине больше, чем А. Например:

Получен правильный результат в дополнительном коде. При переводе в прямой код биты цифровой части результата инвертируются и к младшему разряду прибавляется единица: 1 0000110 + 1 = 1 0000111 = -710.

3. А положительное, B отрицательное и по абсолютной величине меньше, чем А. Например:


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

4. А и В отрицательные. Например:


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

Случаи переполнения для дополнительных кодов рассматриваются по аналогии со случаями 5 и 6 для обратных кодов.

Сравнение рассмотренных форм кодирования целых чисел со знаком показывает:

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

Умножение и деление

Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Для этого в АЛУ имеется регистр, называемый накапливающим сумматором, который до начала выполнения операции содержит число ноль. В процессе выполнения операции в нем поочередно размещаются множимое и результаты промежуточных сложений, а по завершении операции — окончательный результат.

Другой регистр АЛУ, участвующий в выполнении этой операции, вначале содержит множитель. Затем по мере выполнения сложений содержащееся в нем число уменьшается, пока не достигнет нулевого значения.

Для иллюстрации умножим 1100112 на 1011012.

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

 



Читайте также:

 

чисел со знаком и без знака в программировании

Каждый программист должен понимать подписанные и беззнаковые числа и их значение. Положительные числа представлены как беззнаковых чисел. Поэтому нам не нужно ставить перед ними + ve знак . Однако, когда дело касается отрицательных чисел, мы используем –ve знак . Это показывает, что число отрицательное и отличается от положительного значения без знака. Вот почему он представлен как подписанных номеров.

В системе счисления мы предположили, что у нас есть столько битов, сколько необходимо для представления чисел. Но в компьютерах у нас есть фиксированное количество бит для представления значения. Эти размеры обычно равны 8 бит , 16 бит , 32 бит , 64 бит . Эти размеры обычно кратны 8 , поскольку системная память организована на основе 8-битных байтов. Когда для представления числа используется определенное количество битов. Это число определяет диапазон возможных значений, которые могут быть представлены.Например, существует 256 возможных комбинаций из 8-битных , поэтому 8-битное число может представлять 256 различных числовых значений, а диапазон обычно считается равным 0-255 (мы предоставили таблицу в более поздней части этого документа). руководство). Таким образом, мы не можем представить числа больше 255, используя 8-битные числа. Точно так же 16 бит допускает диапазон 0-65535 .

Числа со знаком и без знака

До сих пор мы рассматривали только положительные значения двоичных чисел.Когда фиксированное двоичное число используется для хранения положительных значений, оно считается без знака . В этом случае диапазон положительных значений, которые могут быть представлены, составляет от 0 до 2 n -1 , где n — количество используемых битов. Также возможно представить знаковых (как отрицательных, так и положительных) чисел в двоичном формате. В этом случае некоторая часть общего диапазона значений используется для представления положительных значений, а оставшаяся часть диапазона используется для представления отрицательных значений.

Существует несколько способов представления чисел со знаком в двоичном формате, но наиболее часто используемое представление называется методом дополнения до двух. Термин «дополнение до двух» несколько неоднозначен в том смысле, что он используется по-разному. Во-первых, как представление, дополнение до двух — это способ интерпретации и присвоения значения битовому шаблону, содержащемуся в двоичной величине фиксированной точности. Во-вторых, термин «дополнение до двух» также используется для обозначения операции, которая может выполняться над битами двоичной величины.В качестве операции дополнение числа до двух формируется путем инвертирования всех битов и добавления к нему 1. В двоичном числе, интерпретируемом с использованием представления дополнения до двух, старший бит числа указывает знак. Если бит знака равен 0, число положительное и , если бит знака равен 1, число отрицательное . Для положительных чисел остальные биты содержат истинную величину числа. Для отрицательных чисел биты младшего порядка содержат величину числа.Важно отметить, что представление в виде дополнения до двух может применяться только к количествам с фиксированной точностью, то есть к количествам, для которых задано количество битов.

Метод представления с дополнением до 2 используется потому, что он снижает сложность аппаратного обеспечения в ALU (арифметико-логическом устройстве) центрального процессора компьютера. Используя метод дополнения до 2, все арифметические операции могут выполняться одним и тем же оборудованием, независимо от того, считаются ли числа беззнаковыми или знаковыми.Выполняемые битовые операции идентичны; разница заключается в интерпретации битов. Интерпретация значения будет разной в зависимости от того, считается ли значение беззнаковым или подписанным.

Дополнение до 2 8-битных чисел

В таблице ниже показана последовательность подсчета для 8-битного двоичного числа с использованием дополнения до 2:

Последовательность подсчета для 8-битного двоичного значения

В таблице выше мы ведем отсчет от до . Когда достигается 127 , следующий двоичный шаблон в последовательности соответствует -128 .Значения от наибольшего положительного числа до наибольшего отрицательного числа, но после этого последовательность будет такой, как ожидалось. Скажем, например, добавление 1 к –128 дает –127 . Когда счет увеличивается до FF h (или максимально возможной беззнаковой величины), счет возвращается к 0 . Скажем, например, добавление 1 к –1 дает 0 . Это все для подписанных и беззнаковых чисел в компьютерном программировании.Если у вас есть вопросы, то не стесняйтесь оставлять комментарии.

Основы знаковых двоичных чисел для диапазонов разных типов данных

Основы знаковых двоичных чисел для диапазонов разных типов данных

Основные концепции двоичных чисел со знаком и объяснение диапазонов различных типов данных. Если бы я спросил, каково значение (1000 0000) 2 в десятичном виде, то, безусловно, появятся два неоднозначных ответа (-128) 10 и (+128) 10 .

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

Теперь, если дано беззнаковое число, (+128) 10 будет правильным ответом, потому что в случае беззнаковых чисел знаковый бит отсутствует. Таким образом, здесь MSB (старший значащий бит) не зарезервирован для представления знака числа.

Но в случае, если это число со знаком, (-128) 10 будет правильным ответом.
В случае чисел со знаком старший бит зарезервирован для представления знака числа.
Таким образом, если число состоит из n битов, то в этом 1 бит используется для представления знака числа, а остальные (n-1) биты используются для представления величины числа.

Методы представления числа со знаком:



  • Форма величины знака
  • Дополнительная форма 1
  • Дополнительная форма 2

Они объясняются ниже.

  1. Sign Magnitude Form:
    Здесь MSB зарезервирован для бита со знаком, используя остальные (n-1) биты, мы можем напрямую получить десятичное значение, используя обычную формулу преобразования двоичного в десятичное (умножая 2i, где i представляет позицию индекса от LSB (младший значащий бит)). Обратите внимание, что индекс начинается с 0, а не с 1 со стороны LSB.
  2. Дополнение до единицы Форма:
    Здесь старший бит зарезервирован для бита со знаком, а остальные (n-1) биты сохраняются в виде дополнения числа до единицы.

    То, что я хочу сказать, будет ясно из следующего примера:

    Считайте, что -7 можно представить, используя 4 бита в дополнении до единицы.
    Здесь дано 4 бита, поэтому MSB 1 бит зарезервирован для представления знака. Итак, теперь у нас осталось 3 бита.
    А мы знаем (+7) 10 = (111 2 .

    Но это предусмотрено для хранения числа в форме дополнения до единицы, таким образом, вычисляется дополнение до единицы (+7).
    Дополнение к 1 для (+7) 10 = (000) 2 . (Поскольку дополнение до единицы рассчитывается для преобразования нулей в единицы и наоборот).


    Таким образом, наконец, представление в виде дополнения 1 для (-7) 10 = (1000) 2 . (используя 4 бита).

  3. Форма дополнения до 2:
    Здесь старший бит зарезервирован для бита со знаком, а остальные (n-1) биты сохраняются в виде дополнения числа до 2.

    То, что я хочу сказать, будет ясно из следующего примера:

    Рассмотрим тот же пример, описанный выше, т.е. представьте -7 с использованием 4 бит, но теперь с дополнением до 2.
    Здесь дано 4 бита, поэтому MSB 1 бит зарезервирован для представления знака.Итак, теперь у нас осталось 3 бита.
    А мы знаем (+7) 10 = (111) 2 .

    Но это предусмотрено для хранения числа в форме дополнения до 2, таким образом, вычисляется дополнение до 2 (+7).
    Дополнение до 1 к (+7) 10 = (001) 2. (Поскольку дополнение до 2 вычисляется для преобразования нулей в единицы и наоборот) и прибавления 1 к результату, который мы получаем после переворота битов.

    Другими словами,

    Таким образом, наконец, 2-дополнительное представление (-7) 10 = (1001) 2 .(используя 4 бита).

    Но подождите, есть двусмысленность, как может (-128) 10 = (1000 0000) 2 в 8-битном номере со знаком 2?

    Но хитрость здесь, давайте подумаем, что мы не знаем, что представляет (1000 0000) 2 , и прибавим к нему (+127) 10 , и после сложения полученного результата мы получим (1111 1111) 2 = (-1) 10 . Таким образом, единственное возможное значение (1000 0000) 2 — (-128) 10 в 8-битном 2-м формате со знаком.

    Это понятие разрешено в дополнении до 2, потому что в дополнении до 2 есть понятие (отрицательный 0). Если мы хотим вычислить, взяв дополнение 2 к (1000 0000) 2 , то после игнорирования MSB (бит знака) дополнение числа 1 будет (111 1111), а дополнение 2 будет (000 0000). Таким образом, величина равна 0, а знак отрицательный. Десятичное число, которое мы должны получить, будет (-0), но, как я уже сказал, в дополнении до 2 нет понятия (отрицательный 0).

    Таким образом, это подтверждает (-128) 10 = (1000 0000) 2 .

    Диапазоны типов данных в языках программирования можно объяснить этим. Теперь у нас все эти короткие (тип данных) в c ++ / java составляют 2 байта, то есть 16 бит, и мы говорим, что диапазон составляет от (-32, 768 до 32, 767). Теперь просто обратите внимание, что диапазон положительных чисел составляет до -32 768, а положительное число — только до 32 767, т.е. отрицательный диапазон больше, чем диапазон положительных чисел (речь идет только о величине обеих сторон), но вы можете подумать, что оба положительные и отрицательные диапазоны должны быть одинаковыми, но здесь они не совпадают.

    Запутался, почему так?
    Причиной того же является концепция, которую я объяснил выше, таким образом, отрицательный диапазон на один больше положительного диапазона (1000 0000 0000 0000) 2 равен (-32, 768) 10 . Эта концепция может быть распространена на все типы данных и является причиной диапазонов всех типов данных, которые мы используем в наших языках программирования.

Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями теории CS для собеседований SDE с помощью курса CS Theory Course по доступной для студентов цене и будьте готовы к отрасли.

Как создать аккаунт ВК без номера телефона? • Runetology.com

Как зарегистрироваться в ВК:

  1. Открыть vk.com
  2. Заполните регистрационную форму
  3. Введите номер вашего мобильного телефона
  4. Создать пароль
  5. Добавьте данные вашего профиля

1. Откройте vk.com на компьютере, телефоне или планшете.

2. Заполните регистрационную форму.

Создать учетную запись ВКонтакте можно тремя способами:

Если у вас есть учетная запись Facebook и вы хотите использовать ее в VK, просто нажмите «Войти через Facebook», появится всплывающее окно входа в Facebook и просто следуйте инструкциям.

Если вы не хотите использовать Facebook, заполните форму и нажмите «Продолжить регистрацию».

3. Введите номер своего мобильного телефона.

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

Выберите свою страну в раскрывающемся меню, а затем введите свой номер телефона в поле выше. После нажатия кнопки «Получить код» вам позвонит робот. Не бери! Вам нужно ввести последние 4 цифры входящего номера в поле и затем нажать «Подтвердить».

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

Если вы пропустите все попытки, то получите ошибку:

В некоторых случаях (это зависит от страны вашего мобильного номера), если вы не вводите 4 цифры в течение некоторого времени, вам будет предложено получить код в SMS.

После того, как вы, наконец, получили код и ввели его в поле, нажмите «Подтвердить», чтобы перейти к следующему шагу.

4. Создайте пароль.

Если вы регистрируетесь по номеру телефона на предыдущих шагах, просто выберите пароль и введите его в поле. Обратите внимание, что пароль не скрыт, поэтому убедитесь, что никто не смотрит на ваш экран 🙂 А затем нажмите «Присоединиться к ВК».

5. Добавьте данные своего профиля

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

Как создать аккаунт ВКонтакте без личного номера мобильного телефона?

Вам может потребоваться обойти проверку телефона ВКонтакте, например, из соображений безопасности вы не хотите сообщать свой номер телефона ВКонтакте.

Таким образом, вместо того, чтобы использовать свой личный номер мобильного телефона для регистрации в VK, у вас есть два варианта:

  • купите для этого дополнительную SIM-карту
  • использовать виртуальный номер телефона

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

Хорошо, что платные виртуальные номера не такие дорогие, как вы думаете. Если вы используете SMS Activate, это будет стоить вам около 0,33 доллара за один SMS-код на российский номер. SMS Activate имеет версии интерфейса на английском, испанском и китайском языках.

Во-первых, вам необходимо пополнить баланс. Для российского номера вам понадобится 21 рубль.

В правом верхнем меню нажмите «Пополнить баланс»:

SMS Activate предлагает несколько способов оплаты, таких как VISA / Mastercard, UnionPay, Bitcoin, Payeer, PerfectMoney, Яндекс.Деньги и др.

Затем перейдите в левое меню и выберите Россия, а затем нажмите «Купить» рядом с vk.com:

Теперь вы получите номер, который можно ввести в поле ВКонтакте:

Если нажать «Получить код», можно заметить эту ошибку, это означает, что кто-то уже взял этот номер телефона для создания профиля в ВКонтакте:

Не волнуйтесь, просто вернитесь в окно SMS Activate и нажмите эту красную кнопку, чтобы вернуть деньги, и повторите предыдущий шаг для получения номера:

Когда вы наконец получите номер, который еще не использовался в ВКонтакте, вы увидите окошко «Последние 4 цифры номера телефона».Обратите внимание, что ниже есть таймер:

Дождитесь окончания таймера и нажмите на появившуюся ссылку «Отправить код по SMS»:

А теперь вернитесь в окно SMS Activate и нажмите эту зеленую кнопку, чтобы подтвердить, что вы ждете кода SMS:

Не более чем через несколько минут вы увидите код. Просто скопируйте его и вставьте в поле на странице ВКонтакте.

Теперь выберите пароль для своей учетной записи ВКонтакте и нажмите «Присоединиться к ВК».Это оно!

Не забудьте освободить этот номер, если он вам больше не нужен, чтобы другой пользователь мог использовать его для других служб, где он еще не использовался:

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *