Re: [問卦] 幹!為什麼1是true,0是false?消失

看板Gossiping作者時間8年前 (2017/05/28 01:32), 8年前編輯推噓0(117)
留言9則, 7人參與, 最新討論串4/11 (看更多)
※ 引述《HuangJC (吹笛牧童)》之銘言: : 哥的第二篇肺文就在這裡好了 : 那時有 if .. then, 但並沒說 true 是 1 : 總之,我在 qbasic 下,記得是可把以 true false 變成數字了 : 但是,true 是 -1 : XDDDDDD : 誰跟你說 true 一定是 1 : 在 C,可能會說,只要不是 0 就是 true : ( 所以 true 和 false 的機率不一樣大啊~) : 但在那個 basic (因為我不記得是不是 qbasic 了,所以就說得含糊點好了) : 是認為,false 是 00000000 ,二進位 : true 是 11111111 , 二進位 : 全是 1,在 signed 數字系統裡,是 -1 沒錯 : (對了,在 unsigned 系統裡,它是 255,這很糟糕 : 但如果 true 是 -1, 那一切都會在你意料之外,對吧~ C 在 prepocessor 可以 #define TRUE <what number you like> 另外, TRUE/FALSE 值常跟 success/fail 的傳回值搞混 Python 2.x 你也可以修改 TRUE/FALSE 的預設值 : 記得在一本書,提到怎麼減少程式設計的 bug 裡有提到 : 不要寫這種程式,因為有風險,有可攜性的問題 C 真正的 portable 來自於它的 I/O & Math operator 與 compiler 分離, 這些操作透過呼叫 stdio.h、stdlib.h ...等在 link 時載入相關 libary 達成, 使得原始碼在不同 CPU、OS 上 cmopile 時 不會遇到因為 compiler 實作不同莫名其妙 gg 而查不出原因的狀況. : ------ : java 不允許我這麼做 : java 的 true 就是 true, 不是 1,不能參與運算 : 這好像叫做強型別是吧? 不是,是因為 C 的 bool type 是 0&1, Java 的 bool type 是 true/fasle 值的內涵就不同 -- 讀者審校網試行版 http://readerreviewnet.twbbs.org/ (哲、史、法、政、經、社,人文翻譯書籍錯譯提報網) ◎洪蘭"毀人不倦"舉報專區 http://tinyurl.com/z3t6qzf

05/28 01:33, , 1F
SOGA
05/28 01:33, 1F

05/28 01:33, , 2F
...............???????????
05/28 01:33, 2F

05/28 01:34, , 3F
「Python 」
05/28 01:34, 3F

05/28 01:35, , 4F
+-*/ 是呼叫 stdio stdlib 的函式?
05/28 01:35, 4F

05/28 01:41, , 5F
有點專業 這些高等c會寫嗎?
05/28 01:41, 5F
※ 編輯: freeunixer (60.250.90.238), 05/28/2017 01:45:27

05/28 03:38, , 6F
後面都錯 operator 內建的 而且portable我一樣可以有
05/28 03:38, 6F

05/28 03:38, , 7F
不同的 lib實作
05/28 03:38, 7F

05/28 03:39, , 8F
那個東西就叫做強型別
05/28 03:39, 8F

05/28 09:13, , 9F
C 的 true 是非零喔
05/28 09:13, 9F
文章代碼(AID): #1PARWs5l (Gossiping)
討論串 (同標題文章)
文章代碼(AID): #1PARWs5l (Gossiping)