Задать вопрос
  • Какая самая простая в использовании Gui библиотека для golang?

    druid3
    @druid3
    Вы будете смеяться но таки да - js(canvas там всякие, многопоточность)+HTML5(от простейших кнопок и слайдеров до webgl например для 3D, а еще и кроссплатформенная запись/трансляция звука и видео) + встроенный web-сервер(для локального использования там никакой https не нужен).
    Сам прорабатывал этот вопрос и был удивлен возможностями "сегодняшнего" web-a(я сам не web-программист и мои эпизодические познания были на уровне обзорных статей начала 2000-х) особенно в связке с golang(не нужно никаких "апачей", никаких скриптов и их интерпретаторов). У такого проекта есть несомненный плюс - минимальные переделки если решите превратить его в web-сервис и полная подконтрольность проекта.
    Ответ написан
    Комментировать
  • Что за ошибка при push в Git?

    druid3
    @druid3
    ...еще вариант использовать опцию --force (-f) - игнорирует эту ошибку в частности...
    Ответ написан
    2 комментария
  • Конспект по синтаксису Python 3?

    druid3
    @druid3
    ...такой вариант learnxinyminutes.com/docs/ru-ru/python3-ru
    Ответ написан
    Комментировать
  • Как на Go написать очень быстрый(пусть platform-specific) abs(x int32)?

    druid3
    @druid3
    int32 это фиксированная длинна слова, биты "пронумерованы" без связи с порядком байтов - "промахнуться" тяжело (:)) даже на другой архитектуре. Затираем самый старший бит(собственно знак) и вуаля. ... А приведенные Вами (uvelichitel) примеры - рабочие, как neolink уже показал.
    На irc #go-nuts сказали что знак точно в верхнем бите. Подскажите как к нему bitwise добраться.

    Так то оно так, но код то отрицательных чисел дополнительный до 2-x... потому мы выделяем маской старший бит и хитро пляшем с бубном еще и потому что в go нет побитового отрицания(!)
    а вообще влоб нужно
    Для получения из дополнительного кода самого числа....

    #include <stdlib.h>
    #include <unistd.h>
    
    int i32abs4training(int x)
    {
        int m;
    
        m = 2*((x >> 31)&1) - 1; // negative or positive (invers)
     //   printf("bits in a integer word %i\n", sizeof(x)*8);
    
    	return ~(m*x) + 1;
    }
    
    int main()
    {
     printf ("%i\n", i32abs4training(-12));
     printf ("%i\n", i32abs4training(12));
     printf ("%i\n", i32abs4training(14));
     printf ("%i\n", i32abs4training(-32768));
    }

    Приведенный код не претендует на быстродействие - это просто показать из чего вывели "быстрый" подход и для golang, и для C и для asm.
    Ответ написан
    Комментировать