Однажды, сидя на работе и писал код на Go, я вспомнил старую задачу, суть которой заключалась в том, что нам нужно реализовать деление любого числа на заранее указанное в условии задачи.
Казалось бы, просто, но было два ограничения: 1. Вы не можете явно использовать числа, отличные от 0. 2. Количество разрешенных математических операций также было ограничено.
Я не стал повторять это в Go, но решил использовать одно из решений для отображения строки.
Эта идея не нова, и я не претендую на полное авторство, просто решил поделиться.
Суть в том, что строка разбивается на байты, и каждый байт преобразуется в последовательность битовых сдвигов, а операции XOR и OR с единицей.
Это выглядит примерно так:
Итак, начнем.EAX = uint8(unsafe.Sizeof(true)) (((EAX<<EAX^EAX)<<EAX|EAX)<<EAX<<EAX<<EAX^EAX)<<EAX)
Модуль unsafe здесь нужен только для функции sizeof. Если кто-нибудь знает, как получить размер структуры в Go другими способами, буду рад, если поделитесь.
Настройка разделов Import и Const import (
Теги: #golang #Ненормальное программирование #Ненормальное программирование #Go
-
Правильный Маркетинговый Инструмент Для Вас
19 Oct, 24 -
Салливан, Гарри Стэк
19 Oct, 24 -
Разделение Чата И Поиск В Telegram
19 Oct, 24 -
Динамический Импорт В Javascript
19 Oct, 24 -
8 Kpi Для Успешных Продаж Через Смартфоны
19 Oct, 24