我在java示例中的hough转换下遇到了这个程序。但是我正在用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) {
//.........
}
最佳答案
十六进制数0xFF000000以点十进制表示为255.0.0.0。数字0和1代表什么?
十六进制字符通常不表示特定的十进制字符。在Base 2(二进制)数字系统中,它代表4位。这就是为什么IP地址使用点十进制表示法的原因。因为十六进制FF总是用来表示二进制八位位组的完整八位组,因此始终以点十进制表示为255,因此它对于用户而言更具可读性。
假设您要表示1111 1111 0001 1111,即使十六进制的FF1F实际上是基数10(十进制)的系统,您也将以点十进制格式使用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 ++这样的语言。