Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.70/254: Рейтинг темы: голосов - 254, средняя оценка - 4.70
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
07.02.2015, 16:34
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Типы long long и unsigned long long одинаково занимают по 64 бита
Но по разному ведут себя при сдвигах, причём, ЕМНИП, это зависит от реализации, так что в общем случае — UB, я бы не стал рисковать и просто взял бы unsigned-тип.
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
07.02.2015, 16:43  [ТС]
Цитата Сообщение от korvin_ Посмотреть сообщение
это зависит от реализации
Я привёл пример, основанный на Visual C++.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
07.02.2015, 16:56
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Я привёл пример, основанный на Visual C++.
А на том сайте g++4.7. http://stackoverflow.com/quest... ed-integer
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
07.02.2015, 17:10  [ТС]
Цитата Сообщение от korvin_ Посмотреть сообщение
А на том сайте g++4.7.
Напиши в двух словах, о чём там написано. Мне что-то не очень хочется переводить эту статью на русский язык.

Добавлено через 11 минут
Цитата Сообщение от korvin_ Посмотреть сообщение
А на том сайте g++4.7.
Там ещё Visual C++ 6.0 и Visual C++ 9.0 есть.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
07.02.2015, 17:19
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Напиши в двух словах, о чём там написано.
Там же по примерам видно: при сдвиге вправо отрицательного числа дополнительные биты будут заполняться единицами.
0
07.02.2015, 17:26

Не по теме:

Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Напиши в двух словах, о чём там написано. Мне что-то не очень хочется переводить эту статью на русский язык.
Вот тебе и здрасте. Зачем Вам тогда участвовать в олимпиадах с отбором кандидатов в (полу)иностранные компании? Вам не язык D надо учить, а язык English . (Он даже немного похож на D, только там for each пишется отдельно.)

0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
07.02.2015, 17:26  [ТС]
Цитата Сообщение от korvin_ Посмотреть сообщение
Там же по примерам видно: при сдвиге вправо отрицательного числа дополнительные биты будут заполняться единицами.
Ну я не виноват, что в C++ в отличие от D нет такой операции:
C++
1
X >>> 31
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
07.02.2015, 17:29
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
но этот алгоритм подсчёта бит работает с любой разрядностью
Неправильный результат выдаёт.
0
07.02.2015, 17:31  [ТС]

Не по теме:

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Вот тебе и здрасте.
Чтобы переводить олимпиадные задачи, мне вполне хватает моего знания.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Зачем Вам тогда участвовать в олимпиадах с отбором кандидатов в (полу)иностранные компании?
На этом сайте проходят различные соревнования по программированию. Этот чемпионат первый в этом году с отбором в компанию. И я не собираюсь в ту компанию.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Вам не язык D надо учить, а язык English.
Будет время подтяну.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Он даже немного похож на D, только там for each пишется отдельно.
:)

0
Модератор
 Аватар для Curry
5171 / 3537 / 536
Регистрация: 01.06.2013
Сообщений: 7,697
Записей в блоге: 9
07.02.2015, 17:45
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Ну я не виноват, что в C++ в отличие от D нет такой операции: X >>> 31
Это из Java прямиком.

Добавлено через 3 минуты
и массивы int[] оттуда же
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
07.02.2015, 17:50  [ТС]
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
и массивы int[] оттуда же
В D массивы можно обозначать так же, как и в C++ (чтобы сишники не боялись ).
Где-то я читал, что Александреску считает, что такое обозначение массивов более логичное, так как эти скобки связаны с выделением памяти, а не названием массива.
0
Модератор
 Аватар для Curry
5171 / 3537 / 536
Регистрация: 01.06.2013
Сообщений: 7,697
Записей в блоге: 9
07.02.2015, 18:11
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Александреску считает, что такое обозначение массивов более логичное
Более логичное обозначение [Int], и не массивов, а списков. И выражение X >>> 31 у Вас неправильное - справа тоже стрелочная функция должна быть.
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
07.02.2015, 18:17  [ТС]
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Более логичное обозначение [Int], и не массивов, а списков.
А в D можно делать и так int[int] arr, например, для указателей.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
И выражение X >>> 31 у Вас неправильное - справа тоже стрелочная функция должна быть.
Какая стрелочная функция?
Bit Operations in D
0
Модератор
 Аватар для Curry
5171 / 3537 / 536
Регистрация: 01.06.2013
Сообщений: 7,697
Записей в блоге: 9
07.02.2015, 18:29
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
Какая стрелочная функция?
Не обращайте внимание. В разных языках одинаковые закорючки разное значение имеют.
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
08.02.2015, 08:36  [ТС]
А вставки ассемблера "видят" переменные, созданные в C++?

В D "видят":
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import std.stdio;
 
void main() {
    int res;
    int a = 5, b = 3;
 
    version (D_InlineAsm_X86)
    {
        auto temp = 10;
 
        asm
        {
            mov EAX, a;
            add EAX, b;     // add (a + b) = 8
            mul EAX, temp;  // mul (a + b) * 10 = 80
            idiv EAX, b;    // idiv 80 / 3 = 26
            sub EAX, temp;  // sub 26 - 10 = 16
            mov res, EAX;
        }
    }
 
    writeln(res);           // 16
}
0
Модератор
 Аватар для Curry
5171 / 3537 / 536
Регистрация: 01.06.2013
Сообщений: 7,697
Записей в блоге: 9
08.02.2015, 09:40
Цитата Сообщение от Dennis Ritchie Посмотреть сообщение
А вставки ассемблера "видят" переменные, созданные в C++?
И в простых сях видят. А целые функции, написанные только на ассемблере бывают? http://docwiki.embarcadero.com... _Functions
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
08.02.2015, 10:44
Цитата Сообщение от korvin_ Посмотреть сообщение
Неправильный результат выдаёт.
Надо протестировать на матрицах размерностью, кратной sizeof. Мейби хвост бит массива портит всю картинку.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
08.02.2015, 11:14
Цитата Сообщение от castorsky Посмотреть сообщение
Надо протестировать на матрицах размерностью, кратной sizeof. Мейби хвост бит массива портит всю картинку.
А при разделении на два uint32 он волшебным образом исправляется? В вике есть пример для uint64 (я взял третий вариант), он тоже выдаёт правильное значение. Я же обнуляю массив перед использованием.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
08.02.2015, 11:20
Цитата Сообщение от korvin_ Посмотреть сообщение
А при разделении на два uint32 он волшебным образом исправляется?
Вы не поняли меня, например размер матрицы 65, и вот этот последний бит может портить результат. Я предполагаю, потому что не разбирал ни Ваш пример, ни то что предложил водолаз.
Цитата Сообщение от korvin_ Посмотреть сообщение
Я же обнуляю массив перед использованием.
RAII же =))
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
08.02.2015, 11:27
Цитата Сообщение от castorsky Посмотреть сообщение
например размер матрицы 65, и вот этот последний бит может портить результат
Нет, не может.

Цитата Сообщение от castorsky Посмотреть сообщение
RAII же =))
Эээ... Не понял шутки. Вроде дошло.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Закрытая тема Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru