将C#转换为Pascal我偶然发现了这一行:
if (bb[1] == '1'-'0')
这是什么意思? 如果第二个字节等于字符串'1'减去字符串'0'?
答案 0 :(得分:3)
'1'-'0'
这会给你1
整数值。这就像将字符转换为相应的整数。
与:
相同int value = (int)Char.GetNumericValue('1');
value
将保留1
所以你的支票是:
if(bb[1] == 1)
答案 1 :(得分:0)
C#没有单引号字符串,因此它们都是字符(类型char
)。
类型char
的值在内存中表示为其ASCII代码的整数值,因此一些有限的数学运算对它们起作用(如示例中的减法)。
'1' - '0'
与(int)'1' - (int)'0'
相同,即49 - 48
。
答案 2 :(得分:0)
'1'转换为十进制,对应于49,'0'作为十进制给出48. 49 - 48 = 1.所以'1' - '0'为1,如监视窗口所示。如果您有其他类似的比较,则为Here's ASCII字符集。