Ответы на вопрос:
переведем число 385 из 10 сс в 2 сс
385 / 2 = 192 ост 1
192 / 2 = 96 ост 0
96 / 2 = 48 ост 0
48 / 2 = 24 ост 0
24 / 2 = 12 ост 0
12 / 2 = 6 ост 0
6 / 2 = 3 ост 0
3 / 2 = 1 ост 1
запишем получившееся число. начнем с последнего частного, а затем все остатки (с последнего)
110000001 - это число в 2сс
значит значащих нулей 6 штук в двоичной записи числа 385(10)
Думаю, что-то типа того. #include < iostream> #include < stdio.h> using namespace std; int main() { const int n = 100; char *c = new char[n]; int p // позиция int l // длина int k // повторения cout < < "string c: "; cin > > c; cout < < "pos: "; cin > > p; p--; cout < < "length: "; cin > > l; cout < < "n: "; cin > > k; char *v = new char[l*k+1]; if ((p > = 0) & & (l > 0) & & (k > 0) & & ((strlen(c) - p) > = l) & & (p < = strlen( //проверка ввода { __asm { mov ebx, k; // количество повторений mov edi, v // адрес приёмника m1 : cmp ebx, 0 // сравнение je exit1 // если ebx = 0, то переход на exit1 mov ecx, l // длина строки mov esi, c // адрес источника add esi, p // с заданной позиции m2 : mov al, [esi] //из esi mov [edi], al // запись в edi inc edi // edi+1 inc esi // esi+1 loop m2 // цикл eсх раз dec ebx // ebx-1 jmp m1 // переход на m1 exit1 : mov[edi], 0 } cout < < "\nv: "; cout < < v < < endl; } else cout < < "\nerror " < < endl; system("pause"); }
Популярно: Информатика
-
паша53511.08.2021 20:54
-
MashaLipitenko11.06.2020 00:00
-
Ахмрев03.08.2022 03:51
-
051307281301.09.2022 07:48
-
vikonil01.02.2022 23:55
-
TRЮM20.11.2020 06:03
-
kisik40418.10.2021 10:50
-
2004тигр200407.01.2022 10:35
-
Аринка2006108.04.2022 19:14
-
StefaLandon24.11.2021 18:45