未知代码片段- 0xff000000
本文关键字:0xff000000 片段 代码 未知 | 更新日期: 2023-09-27 18:13:58
我在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) {
//.........
}
它只是一个数字的HEX表示。0xF=15, 0xF0=240, 0xFF=255, 0xF12A=61738, ...., 0 xff000000 = 4278190080
按位操作更容易理解,也更有意义
十六进制数0xFF000000以点十进制表示为255.0.0.0。数字0和1代表什么?
十六进制字符通常不表示特定的十进制字符。它在基数2(二进制)数字系统中表示4位。这就是IP地址使用点十进制表示法的原因。它使它更易于用户阅读,因为十六进制FF总是用来表示二进制的一个完整的八位字节,它总是可以显示为255点十进制表示法。
假设你想要表示1111 1111 0001 1111,即使十六进制中的FF1F实际上是10进制(十进制)数字系统中的65311,你也会使用点十进制格式的0.0.255.31。
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++这样的语言。
在RGBA表示法中,最左边的字节通常是alpha通道。它表示给定像素的透明度。0x00表示完全透明的像素,0xff表示完全不透明的像素(就好像根本没有透明度一样)
见http://en.wikipedia.org/wiki/RGBA_color_space .
代码0xff000000
只是一个数字的十六进制表示。具体来说,是4278,190,080。您可以在c#中以同样的方式使用它。
在这段代码中,它可能代表一种颜色,但如果不了解更多信息,就很难分辨。