Неизвестный фрагмент кода - 0xff000000
Я наткнулся на эту программу в 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 ответа
Шестнадцатеричное число 0xFF000000 выражается в десятичном виде как 255.0.0.0. Цифры 0 и 1 представляют?
Шестнадцатеричный символ обычно не представляет определенный десятичный символ. Он представляет 4 бита в системе счисления Base 2 (Binary). Вот почему точка-десятичная запись используется для IP-адресов. Это делает его более читабельным для пользователя, потому что шестнадцатеричный FF ВСЕГДА используется для представления полного октета двоичных единиц, которые всегда могут отображаться как 255 в десятичном формате.
Допустим, вы хотите представить 1111 1111 0001 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++.
Это просто шестнадцатеричное представление числа. 0xF=15, 0xF0=240, 0xFF=255, 0xF12A=61738, ...., 0xff000000=4278190080
Это проще для понимания и более значимо в кодировании, когда вы выполняете побитовые операции
В нотации RGBA крайний левый байт обычно является альфа-каналом. Это указывает на степень прозрачности данного пикселя. 0x00 - для полностью прозрачного пикселя, а 0xff - для полностью непрозрачного (как будто прозрачность отсутствует).
Код 0xff000000
это просто шестнадцатеричное представление числа. В частности, номер 4 278 190 080. Вы можете использовать это так же, как в C#.
В этом коде он, вероятно, представляет цвет, но трудно сказать, не зная больше о том, что вы делаете.