作者Barros (Leila)
站内Programming
标题[问题] 新手发问 "!!"的意思
时间Thu Mar 8 21:11:04 2012
看资料结构的书的时候,应该是用c写的吧
发现code里出现 !! 这个符号
烦请解惑感激不尽~
节录部份code:
BinQueue
Merge(BinQueue H1, BinQueue H2)
{
Bintree T1, T2, Carry=Null;
int i j;
if(H1->CurrentSize +H2->CurrentSize >Capacity)
error("Merge would exceed capacity");
H1->CurrentSize += H2->CurrentSize;
for(i=0, j=1; j<= H2->CurrentSize; i++, j*=2)
}
T1=H1->TheTrees[i];T2=H2->TheTrees[i];
switch( !!T1 + 2 * !! T2 + 4 * !! Carry)
{
case 0: /*no trees*/
case 1: /*only H1*/
break;
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.84.2.1
1F:→ Barros:因为google过了也找不到 只好来这里发问了 219.84.2.1 03/08 21:12
2F:→ tropical72:是长得像这样吗?int a=5; if(!!a).. 123.195.165.40 03/08 21:13
3F:→ tropical72:简单的说,a是非0的话,!!a会传回1;否则 123.195.165.40 03/08 21:14
4F:→ tropical72:传回0。 123.195.165.40 03/08 21:14
※ 编辑: Barros 来自: 219.84.2.1 (03/08 21:29)
5F:→ s66449:加了两个not 不就等同互相抵消了?? 114.27.187.150 03/08 22:13
6F:→ s66449:有加和没加是一样的? 114.27.187.150 03/08 22:13
7F:→ tropical72:不同唷,a=1,b=5而言 : 123.195.165.40 03/08 22:19
8F:→ tropical72:a+=b; --> a+=5 ---> a=6; 123.195.165.40 03/08 22:20
9F:→ tropical72:a+=!!b ---> a+=!(!5)-->a+=!0-->a+=1 123.195.165.40 03/08 22:20
10F:→ tropical72:--> a=2; 123.195.165.40 03/08 22:20
11F:→ tropical72:(T1!=0)|((T2!=0)<<1)|((C!=0)<<2) 123.195.165.40 03/08 22:26
12F:→ Barros:了解了,谢谢 219.84.58.43 03/08 22:47
13F:→ MOONRAKER:真是神秘。 61.231.8.206 03/09 08:46
14F:推 yauhh:一个!将整数变成布尔值,但逻辑意思是反的, 180.206.52.95 03/09 18:42
15F:→ yauhh:再加!就回来了. 180.206.52.95 03/09 18:43
16F:→ yauhh:他做二件事,一是将整数对应为0,1,二是将0,1 218.160.108.73 03/09 21:56
17F:→ yauhh:(true,false)反过来当作数字来用. 但例子中 218.160.108.73 03/09 21:57
18F:→ yauhh:看起来作法好怪,逻辑运算当数字运算用,数字 218.160.108.73 03/09 21:57
19F:→ yauhh:运算却当位元运算用. 218.160.108.73 03/09 21:58