Discussion:
[問題] 有關boolean
(时间太久无法回复)
一肩擔雞雙頭啼
2007-01-02 17:22:39 UTC
Permalink
想請問一下


if(4&1){}
這樣的含意在java中會出現錯誤 cannot convert from Int to boolean

請問我該怎麼作 找了半天找不到將int 轉為 boolean 的method

另外 有沒有好心人幫忙解釋一下這是什麼意思?

" if(4&1) "???

--







--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.231.121
痞子軍團團長
2007-01-02 17:54:38 UTC
Permalink
※ 引述《aaa12345 (一肩擔雞雙頭啼)》之銘言:
: 想請問一下
: if(4&1){}
: 這樣的含意在java中會出現錯誤 cannot convert from Int to boolean
: 請問我該怎麼作 找了半天找不到將int 轉為 boolean 的method
: 另外 有沒有好心人幫忙解釋一下這是什麼意思?
: " if(4&1) "???

這個是 bit 層級的 and 運算(當兩邊都是數字的時候)
所以運算的結果也是數字

至於你說要把 int 轉為 boolean
這有點怪(大概您之前寫的是 C 吧?)

基本上,這兩個是不同的東西(in Java)
你恐怕只能自己定義規則,然後自己寫 method 去轉換

--



戰略高手 -- CompScience 組組長 PsMonkey

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.192.56
:p
2007-01-02 17:58:22 UTC
Permalink
※ 引述《aaa12345 (一肩擔雞雙頭啼)》之銘言:
: 想請問一下
: if(4&1){}
: 這樣的含意在java中會出現錯誤 cannot convert from Int to boolean
: 請問我該怎麼作 找了半天找不到將int 轉為 boolean 的method
: 另外 有沒有好心人幫忙解釋一下這是什麼意思?
: " if(4&1) "???
這要看你的if判斷式是要判斷什麼吧
if()內只能接受true or false
4&1的意思是把4和1這兩個int變數的每個bit做AND處理
所以4&1的值應該是0這個integer變數
(這裡跟C不一樣, 0,1不能直接當成boolean值)

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.109.213
godfat 真常
2007-01-03 01:01:33 UTC
Permalink
※ 引述《aaa12345 (一肩擔雞雙頭啼)》之銘言:
: 請問我該怎麼作 找了半天找不到將int 轉為 boolean 的method

其他的有人回答了,至於把 int 轉為 boolean?
如果只是要用像 C/C++ 的用法,多個 == 判斷就好了,
根本不需要做什麼轉換吧|||b
不用想得那麼複雜…

if( 4&1 != 0 ) 就好了
非 0 都是 true, 不是嗎?

--
In Lisp, you don't just write your program down toward the language,
you also build the language up toward your program.

《Programming Bottom-Up》- Paul Graham 1993

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.217.102.100
AI3767
2007-01-03 02:06:14 UTC
Permalink
※ 引述《godfat (godfat 真常)》之銘言:
: ※ 引述《aaa12345 (一肩擔雞雙頭啼)》之銘言:
: : 請問我該怎麼作 找了半天找不到將int 轉為 boolean 的method
: 其他的有人回答了,至於把 int 轉為 boolean?
: 如果只是要用像 C/C++ 的用法,多個 == 判斷就好了,
: 根本不需要做什麼轉換吧|||b
: 不用想得那麼複雜…
: if( 4&1 != 0 ) 就好了
: 非 0 都是 true, 不是嗎?
對於數字, 若要做bit的異同檢查
使用 XOR 比較妥當
4&1 對bit來看是 100 & 001 , 會得到 0
但 3&1 對bit來看是 011 & 001 , 會得到 1
XOR運算是 相同者得0, 不同者得1
^│ 0│ 1
─┼─┼─
0│ 0│ 1
1│ 1│ 0

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.105.166
※ 編輯: AI3767 來自: 140.123.105.166 (01/03 10:06)
godfat 真常
2007-01-03 10:29:37 UTC
Permalink
�� �ޭz�mgodfat (godfat �u�`)�n���ʨ��G
: �� �ޭz�maaa12345 (�@�Ӿ������Y��)�n���ʨ��G
: : �аݧڸӫ����@ ���F�b�ѧ䤣���Nint �ର boolean ��method
: ���L�����H�^���F�A�ܩ��� int �ର boolean?
: �p�G�u�O�n�ι� C/C++ ���Ϊk�A�h�� == �P�_�N�n�F�A
: �ڥ����ݭn�������ഫ�a|||b
: ���ηQ�o���������K
: if( 4&1 != 0 ) �N�n�F
^^^^^
�P�«����A�o�䦳�u���v�����D�A�ҥH�n�άA��
�ץ����G
if( (4&1) != 0 )

�S�O�n�u�����ǡ��o���e�A���T�{���U�� XDb
���L�b Java �̡A 4 & (1!=0) �]�����L compile, �@ compile �N���D���D�F
�Ϥ� C/C++ �o���i���N�n debug �b�ѤF�K :x

: �D 0 ���O true, ���O�ܡH

--
�ͦ��h�S�B���Y���w�B�@�u�ʮɡB�����U�U

�m�����n�Х@����

--
�� �o�H��: ���������~�{(ptt.cc)
�� From: 125.232.1.111

Loading...