powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос по указателям
23 сообщений из 48, страница 2 из 2
Вопрос по указателям
    #38178292
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНо таки да: он-то может вернуть результат
сразу в двух регистрах, чего в С не добиться.
у компилятора обычно хватает сообразительности в случае
Код: plaintext
1.
rest = a%b; res = a/b;


обойтись одной командой div
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38178314
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Деление в сочетании с остатком не в каждой программе встретишь.
Чаще просто остаток нужен, иногда деление. Но чтобы вместе... Мне лично приходит в голову только один алгоритм, где это надо - перевод числа в строку, но на это есть стандартная функция.
Так что вообще не понятно об чем вопрос :)

А вот сканирование памяти указателем - это типичная задача в системном программировании, вот и сделали лаконичную поддержку в синтаксисе.
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38178321
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyМне лично приходит в голову только один алгоритм, где это надо -
перевод числа в строку, но на это есть стандартная функция.
Любая длинная арифметика, включая шифрование и хэширование.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38178327
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Так я и говорю, это то, для чего существуют готовые библиотеки, и в обычной жизни никто этим не занимается.
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38178329
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyТак я и говорю, это то, для чего существуют готовые библиотеки

Ткни пальцем в библиотеку, где есть перевод 128-разрядного числа в строку и обратно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38178331
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Для начала неплохо было бы продемонстрировать, что это вообще кому-то нужно, кроме вас :)
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38178335
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyДля начала неплохо было бы продемонстрировать, что это вообще
кому-то нужно, кроме вас :)
ODBC - слыхал? Тип NUMERIC. Внутренне - 128 разрядное целое. Никому не нужно работать с
ODBC? Не верю!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38178340
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovAnatoly MoskovskyДля начала неплохо было бы продемонстрировать, что это вообще
кому-то нужно, кроме вас :)
ODBC - слыхал? Тип NUMERIC. Внутренне - 128 разрядное целое. Никому не нужно работать с
ODBC? Не верю!
Повторяю вопрос Анатолия: а зачем тебе это делать вручную? Получаешь рекордсет со сложным типом? Ну так SQLBind его! Был NUMERIC в СУБД, стал SQL_NUMERIC_STRUCT в С. И никаких проблем.
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38178344
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owlстал SQL_NUMERIC_STRUCT в С. И никаких проблем.
Э, нет, вот тут-то проблемы только и начинаются: отобразить этот самый SQL_NUMERIC_STRUCT
на экране, преобразовать в OCINumber и т.д. и т.п.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38178352
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Вы можете прочесть числовое поле из курсора сразу как строку. Не нужны никакие промежуточные SQL_NUMERIC_STRUCT.

Короче. Суть в том что арифметика - задача нетипичная для системного программирования.
Поэтому никаких фишек для этого в языке нет.
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38179268
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyDimitry Sibiryakov,

Для начала неплохо было бы продемонстрировать, что это вообще кому-то нужно, кроме вас :)

ну, мне тоже нужно...
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38179289
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,

А если копнуть поглубже, то тоже окажется что это нужно, только потому ручками пытаетесь делать то для чего есть готовое АПИ? :)
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38179295
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, специально для вас двоих нагуглил:
Перевод 128-битного числа в строку вообще без деления .
(Надо только примере вместо typedef unsigned long uint32 использовать кроссплатформенный 32-битный беззнаковый, например uint32_t из ANSIС, чтобы и на 64 битах тоже работало )

Еще пожелания будут? :)
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38179412
sherzod_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMasterZivНу и "одной операцией" -- тоже не понятно. Одна операция -- деление,
другая -- получение остатка от деления.Для интеловского процессора это одна операция. Но таки да: он-то может вернуть результат сразу в двух регистрах, чего в С не добиться.
Какие проблемы, в си можно добиться всего. Напишите asm вставку (это как раз часть стандартизированного языка, для тех кто любит поговаривать: "а в таком то проце есть такая операция") в функции для использования этой операции и будет вам 1 statement для вычисления. Если хотите кросс-о напишите функцию без asm-вставки. Если в плюсах, вообщем можно задействовать перегрузку какого-нить оператора и возвращать структуру. Делов-то.
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38179431
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sherzod_,

не надо асм вставки, компилятор в состоянии оптимизировать эту несчастную команду.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
	int a= atoi("1212");
000000013FB71006  lea         rcx,[string "1212" (013FB73268h)]  
000000013FB7100D  call        qword ptr [__imp_atoi (013FB73170h)]  
	int b= atoi("133");
000000013FB71013  lea         rcx,[string "133" (013FB73270h)]  
000000013FB7101A  mov         ebx,eax  
000000013FB7101C  call        qword ptr [__imp_atoi (013FB73170h)]  
000000013FB71022  mov         ecx,eax  

	int c= a/b;
	int d=a%b;
000000013FB71024  mov         eax,ebx  
000000013FB71026  cdq  
000000013FB71027  idiv        eax,ecx  


	printf("%i % i",c,d);
000000013FB71029  lea         rcx,[string "%i %i" (013FB73274h)]  
000000013FB71030  mov         r8d,edx  
000000013FB71033  mov         edx,eax  
000000013FB71035  call        qword ptr [__imp_printf (013FB73168h)]  
	return 0;

...
Рейтинг: 0 / 0
Вопрос по указателям
    #38179448
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyЛадно, специально для вас двоих нагуглил:
Перевод 128-битного числа в строку вообще без деления .Интересный алгоритм. На моем компе работает быстрее чем на делениях.
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38179467
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyMasterZiv,

А если копнуть поглубже, то тоже окажется что это нужно, только потому ручками пытаетесь делать то для чего есть готовое АПИ? :)

Дай ссылку пожалуйста на это готовое API. К тому же, извини, а как быть тем, кто это самое API должен реализовать?
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38179853
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivДай ссылку пожалуйста на это готовое API. К тому же, извини, а как быть тем, кто это самое API должен реализовать?
Готовое АПИ к чему? Задача-то не описана.
Перевод числа в строку это не задача, это один из шагов решения какой-то задачи.

Как быть?
Конкретно по делению и остатку - я выше привел пример, где вообще все на сдвигах и сложениях. Вот так и быть. Думать надо, а не в лоб решать задачи :)
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38179982
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_SlaИнтересный алгоритм.
Чего ж там интересного-то? Обычная длинная арифметика в частном случае для четырёх целых.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38180037
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovm_SlaИнтересный алгоритм.
Чего ж там интересного-то? Обычная длинная арифметика в частном случае для четырёх целых.
Обычная:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
#include <stdio.h>

unsigned int a [] = { 0x12345678, 0x12345678, 0x12345678, 0x12345678 };

/* 24197857161011715162171839636988778104 */

int
main ()
{
  unsigned long long d, r;

  do
    {
      r = a [0];

      d = r / 10;
      r = ((r - d * 10) << 32) + a [1];
      a [0] = d;

      d = r / 10;
      r = ((r - d * 10) << 32) + a [2];
      a [1] = d;

      d = r / 10;
      r = ((r - d * 10) << 32) + a [3];
      a [2] = d;

      d = r / 10;
      r = r - d * 10;
      a [3] = d;

      printf ("%d\n", (unsigned int) r);
    }
  while (a[0] || a[1] || a[2] || a[3]);

  return 0;
}

в каждом учебнике есть.
Получение строки на сдвигах первый раз вижу.
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38180096
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Алгоритм там для общего случая годится.
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38180189
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_SlaПолучение строки на сдвигах первый раз вижу.
Сдвиги там, собственно, служат только для получения потока бит. Основной трюк это
умножение десятичной строки на 2.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос по указателям
    #38180200
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_SlaAnatoly MoskovskyЛадно, специально для вас двоих нагуглил:
Перевод 128-битного числа в строку вообще без деления .Интересный алгоритм. На моем компе работает быстрее чем на делениях.Показалось. :)
Алгоритм на делениях в разы быстрее алгоритма на сдвигах.
...
Рейтинг: 0 / 0
23 сообщений из 48, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос по указателям
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]