[問題] !!運算子~~(已解決)

看板C_and_CPP (C/C++)作者時間14年前 (2012/06/20 14:54), 編輯推噓2(2018)
留言20則, 9人參與, 最新討論串1/1
今天在看 code的時候看到了一行code Bool aaa; int bbb; ...... aaa = !!(bbb&BIT7); 這個!! 跟&& 是一樣的解釋嗎 ? 純粹的邏輯上做not嗎 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 27.241.121.76

06/20 14:57, , 1F
變成1或0
06/20 14:57, 1F

06/20 14:58, , 2F
做兩次!
06/20 14:58, 2F

06/20 15:08, , 3F
怎麼會有人想做兩次= =?
06/20 15:08, 3F

06/20 15:10, , 4F
因為要轉成1或0啊 1F才講完 @_@
06/20 15:10, 4F

06/20 15:26, , 5F
http://goo.gl/SU0xQ 其實不會真的做兩次,純粹是C的語法
06/20 15:26, 5F

06/20 15:44, , 6F
有點類似(bool)(bbb & BIT7)
06/20 15:44, 6F

06/20 15:47, , 7F
恩恩~~究結果而言的確是變1或0~XD 我好奇的是(Bool)(bbb&Bit)
06/20 15:47, 7F

06/20 15:48, , 8F
這樣不是比較好看 ?
06/20 15:48, 8F

06/20 15:49, , 9F
用VC 反組譯的結果是 neg eax ; sbb eax; neg eax
06/20 15:49, 9F

06/20 16:35, , 10F
(Bool)←這個type應該不是到處都有
06/20 16:35, 10F

06/20 16:46, , 11F
p大的組語看不懂...
06/20 16:46, 11F

06/20 16:49, , 12F
c沒有bool
06/20 16:49, 12F

06/20 16:50, , 13F
Bool是自己定的, 不一定能直接轉過去
06/20 16:50, 13F

06/20 16:51, , 14F
#include <stdbool.h>
06/20 16:51, 14F

06/20 16:52, , 15F
06/20 16:52, 15F

06/20 17:30, , 16F
false是0,true是非0,故 a = !!a 是當 a != 0 時令 a 為 1
06/20 17:30, 16F

06/20 17:30, , 17F
反之則反,a = !a 就是判斷 a == 0 來給 a 定值
06/20 17:30, 17F

06/20 17:42, , 18F
大概理解了!感謝~
06/20 17:42, 18F

06/20 19:56, , 19F
感謝P大~~看了你的網站~~就了解了~~不過感覺真的很像做兩次no
06/20 19:56, 19F

06/21 14:43, , 20F
不是應該用 cmp + setne ?!
06/21 14:43, 20F
文章代碼(AID): #1FuNExWE (C_and_CPP)
文章代碼(AID): #1FuNExWE (C_and_CPP)