Незабываемое 32-разрядное значение как константа

Используя основные классы AWT, Вы могли сделать что-то вроде этого:

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import javax.swing.JPanel;

public class LinearGradient extends JPanel {

    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        Color color1 = Color.RED;
        Color color2 = Color.BLUE;
        int steps = 30;
        int rectWidth = 10;
        int rectHeight = 10;

        for (int i = 0; i < steps; i++) {
            float ratio = (float) i / (float) steps;
            int red = (int) (color2.getRed() * ratio + color1.getRed() * (1 - ratio));
            int green = (int) (color2.getGreen() * ratio + color1.getGreen() * (1 - ratio));
            int blue = (int) (color2.getBlue() * ratio + color1.getBlue() * (1 - ratio));
            Color stepColor = new Color(red, green, blue);
            Rectangle2D rect2D = new Rectangle2D.Float(rectWidth * i, 0, rectWidth, rectHeight);
            g2.setPaint(stepColor);
            g2.fill(rect2D);
        }
    }
}
6
задан 2 revs, 2 users 100% 28 November 2009 в 08:42
поделиться

12 ответов

Полный список магических констант находится здесь:

Hexspeak

Magic Number

И см. Ссылки там.

18
ответ дан 8 December 2019 в 02:08
поделиться

Интересно, это как программисту нужно спрашивать. В конце концов, чтобы найти подходящие слова, требуется список слов и однострочный C ++.

#include <iterator>
#include <string>
#include <algorithm>
#include <iostream>
#include <boost/lambda/lambda.hpp>
#include <boost/lambda/bind.hpp>

int main()
{
    using namespace boost::lambda;
    std::remove_copy_if(
        std::istream_iterator<std::string>(std::cin),
        std::istream_iterator<std::string>(),
        std::ostream_iterator<std::string>(std::cout, " "),
        bind(&std::string::size, _1) != 8u
            ||
        bind(
            static_cast<std::string::size_type (std::string::*)(const char*, std::string::size_type) const>(
                &std::string::find_first_not_of
            ),
            _1,
            "abcdefgiost",
            0u
        ) != std::string::npos
    );
}
14
ответ дан 8 December 2019 в 02:08
поделиться

Вы можете легко найти их сами.

sed '/[^a-folt]/d' /usr/share/dict/words | tr olt 017 |
awk '{print length, $0}' | sort -n | cut -f2- -d' '
3
ответ дан 8 December 2019 в 02:08
поделиться

Вот набор шестнадцатеричных слов , которые можно использовать для создания константы.

Отрывок некоторых слов:

ba5eba11
bedabb1e
be5077ed
b0a710ad
b01dface
cab005e
ca11ab1e
ca55e77e
deadbea7
defec8
f01dab1e
f005ba11
0ddba11
5ca1ab1e
7e1eca57
3
ответ дан 8 December 2019 в 02:08
поделиться

Классический вариант - 0xdeadbeef.

2
ответ дан 8 December 2019 в 02:08
поделиться

Вот еще один: 0xDEADCAFE :)

1
ответ дан 8 December 2019 в 02:08
поделиться

0xDEADBEEF 0xDEADBABE

...

Hexspeak

1
ответ дан 8 December 2019 в 02:08
поделиться

0xBADDD00D , 0xBADDFACE , 0xCAFEF00D , 0xBAADCAAB и т. Д. 1117817 [и т. ]

1
ответ дан 8 December 2019 в 02:08
поделиться

0x00abacab

(Что произошло ПУТЬ после ухода Питера Габриэля.)

1
ответ дан 8 December 2019 в 02:08
поделиться

Мне нравится 600df00d

1
ответ дан 8 December 2019 в 02:08
поделиться

0x0BE5EBEE 0xADEAD60D

1
ответ дан 8 December 2019 в 02:08
поделиться

Я поклонник 0xBAADF00D.

1
ответ дан 8 December 2019 в 02:08
поделиться