Еще Один Способ Отображения Строк В Go

Однажды, сидя на работе и писал код на 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

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.