Как правило, массив представляет собой набор однотипных данных, расположенных в оперативной памяти таким образом, чтобы по индексам элементов можно было легко вычислить адрес соответствующего значения. Например, пусть одномерный массив А состоит из элементов, расположенных в памяти подряд по возрастанию индексов и каждый элемент занимает по k байт. Тогда адрес 1-го элемента вычисляется по формуле:
адрес(A[i]) = адрес(А[0]) + i * k
Если мы имеем дело с двумерным массивом в размерности MXN, расположенным в памяти по строкам, то адрес элемента в [i, j ] вычисляется по формуле:
адрес(В[i,j]) = адрес(В[0,0]) + (i * N + j) * k
Приведенные выше формулы незначительно усложняются в тех случаях, когда начальные индексы отсчитываются не от нуля, что характерно для Паскаля.
Перевод из десятичной в двоичную производится делением числа на 2 до тех пор, пока не останется ответ 1, и записи остатков и ответа справа налево, начиная с ответа, таким образом:
Как правило, массив представляет собой набор однотипных данных, расположенных в оперативной памяти таким образом, чтобы по индексам элементов можно было легко вычислить адрес соответствующего значения. Например, пусть одномерный массив А состоит из элементов, расположенных в памяти подряд по возрастанию индексов и каждый элемент занимает по k байт. Тогда адрес 1-го элемента вычисляется по формуле:
адрес(A[i]) = адрес(А[0]) + i * k
Если мы имеем дело с двумерным массивом в размерности MXN, расположенным в памяти по строкам, то адрес элемента в [i, j ] вычисляется по формуле:
адрес(В[i,j]) = адрес(В[0,0]) + (i * N + j) * k
Приведенные выше формулы незначительно усложняются в тех случаях, когда начальные индексы отсчитываются не от нуля, что характерно для Паскаля.
0011₂+1011₂ = 3₁₀+11₁₀ = 14₁₀ (или 1110₂)
10110₂-1011₂ = 22₁₀-11₁₀ - 11₁₀ (или 1011₂)
Объяснение:
Перевод из двоичной в десятичную систему исчисления производится справа налево, таким образом:
0011₂= 1*2⁰+1*2¹+0*2²+0*2³ = 1*1+1*2+0*4+0*8 = 1+2+0+0 = 3₁₀
1011₂= 1*2⁰+1*2¹+0*2²+1*2³ = 1*1+1*2+0*4+1*8 = 1+2+0+8 = 11₁₀
10110₂= 0*2⁰+1*2¹+1*2²+0*2³+1*2⁴ = 0*1+1*2+1*4+0*8+1*16 = 0+2+4+0+16 = 22₁₀
1011₂= 1*2⁰+1*2¹+0*2²+1*2³ = 1*1+1*2+0*4+1*8 = 1+2+0+8 = 11₁₀
Объяснение для "или":
Перевод из десятичной в двоичную производится делением числа на 2 до тех пор, пока не останется ответ 1, и записи остатков и ответа справа налево, начиная с ответа, таким образом:
14/2=7(ост. 0); 7/2=3(ост. 1); 3/2=1(ост. 1)
Запишем как: 1110₂
11/2=5(ост. 1); 5/2=2(ост. 1); 2/2=1(ост. 0)
Запишем как: 1011₂