Неизвестный фрагмент кода - 0xff000000 - PullRequest
0 голосов
/ 10 ноября 2011

Я наткнулся на эту программу в hough transform в примере с Java.Но я делаю свой проект в C #, я не могу понять, что такое этот частичный код " 0xff000000 ".что это за кусок кода - 0xff000000 это цвет?если его цвет, как я могу конвертировать его C #?

private void drawPolarLine(int value, int r, int theta) {
            for(int x=0;x<width;x++) {

                for(int y=0;y<height;y++) {

                        int temp = (int)(x*Math.cos(((theta)*Math.PI)/180) + y*Math.sin(((theta)*Math.PI)/180));
                    if((temp - r) == 0)
                         output[y*width+x] = 0xff000000 | (value << 16 | value << 8 | value);

                }
            }
        }

if ((input[y*width+x] & 0xff)== 255) {
    //.........
}

Ответы [ 4 ]

4 голосов
/ 10 ноября 2011

это просто шестнадцатеричное представление числа.0xF = 15, 0xF0 = 240, 0xFF = 255, 0xF12A = 61738, ...., 0xff000000 = 4278190080

Это проще для понимания и более важно в кодировании, когда вы выполняете побитовые операции

3 голосов
/ 10 ноября 2011

Шестнадцатеричное число 0xFF000000 выражено в десятичном виде как 255.0.0.0.Цифры 0 и 1 представляют?

Шестнадцатеричный символ обычно не представляет определенный десятичный символ.Он представляет 4 бита в системе счисления Base 2 (Binary).Вот почему точка-десятичная запись используется для IP-адресов.Это делает его более читаемым для пользователя, потому что шестнадцатеричный FF ВСЕГДА используется для представления полного октета двоичных единиц, которые всегда могут отображаться как 255. В десятичном формате.

Допустим, вы хотите представить 1111 11110001 1111, вы должны использовать 0.0.255.31 в точечно-десятичном формате, даже если FF1F в шестнадцатеричном формате на самом деле составляет 65311 в системе счисления с основанием 10 (десятичное число).

Hex ..........Decimal.......bin
0...............0..............0
1...............1..............1
2...............2..............10
3...............3..............11
4...............4..............100
5...............5..............101
6...............6..............110
7...............7..............111
8...............8.............1000
9...............9.............1001
A..............10............1010
B..............11............1011
C..............12............1100
D..............13............1101
E..............14............1110
F..............15............1111
10............16........0001 0000

Язык программирования Java не предоставляет вамуказатели, так что вы не можете получить доступ к памяти объектов / целых чисел и других вещей.Я не уверен, что c # работает, но если вы действительно хотите понять, как работают области памяти, я бы выучил такой язык, как c ++.

3 голосов
/ 10 ноября 2011

В нотации RGBA крайний левый байт обычно является альфа-каналом.Это указывает на степень прозрачности данного пикселя.0x00 - для полностью прозрачного пикселя, а 0xff - для полностью непрозрачного (как будто без прозрачности).

См. http://en.wikipedia.org/wiki/RGBA_color_space.

2 голосов
/ 10 ноября 2011

Код 0xff000000 - это шестнадцатеричное представление числа.В частности, номер 4 278 190 080.Вы можете использовать его таким же образом в C #.

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

...