看板 java 關於我們 聯絡資訊
各位先進大家好,小弟有個問題想和前輩們請教一下, Java 在 byte 的宣告,就我所知可用 byte = -1 or byte = 0xff兩種方式, 在存入Oracle Raw Data Type時,會以二進制(eg:11111111)方式存入, 但我有個疑問,為什麼 byte 一定要用10進制 or 16進制方式宣告, 之後Oracle再把值轉成二進制存入,如此一來不就顯得多此一舉, 我在想可不可以直接用二進制塞入DB,讓系統不用再經過這一段的轉換, 另外一個問題也是類似的問題, 就是 Java 使用 3 bytes 儲存圖片 R.G.B 三個顏色的值, 在給這 3 個值時,是直接給各個 byte 一個10進位 or 16進位的值嗎? 還是說是直接給二進制的值呢? 如果是給二進制的值,就會回到上面想問的問題, 就是如何餵給 byte 二進制的值,並把這個值傳給DB, 以上,先謝謝各位前輩了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.146.83.43
PsMonkey:宣告是給人看的... 09/29 21:55
※ 編輯: gimmy731031 來自: 122.146.83.43 (09/29 21:58)
gimmy731031:恩恩~那如果存RGB不需給人看的話,是用binary存入嗎?想 09/29 22:03
gimmy731031:了解系統是如何做到將二進制值傳給byte @@? 09/29 22:06
gimmy731031:補充一下RGB不需給人看是因為pixel會自動抓取RGB數值 09/29 22:08
LPH66:對電腦來說 0xFF 255 0377 (二進位的)11111111 都是一樣的 09/29 22:20
LPH66:程式中不管你怎麼寫最後存進電腦就一定是二進位的值 09/29 22:22
LPH66:不管你是做什麼運算 什麼資料 通通都是一樣的 09/29 22:24
LPH66:只是 Java 7 之前我們不能直接在程式裡寫上 0b11111111 而已 09/29 22:26
LPH66:你只要想成電腦記的是 255 這個數而不是 '2' '5' '5' 三個字 09/29 22:31
LPH66:就不會被進位問題困擾了 (話說我這樣推好像不如另起新文..) 09/29 22:32
gimmy731031:感謝L大~在網路上有看到相同的說法,但Raw只能讀取2進 09/29 22:39
gimmy731031:制,給255系統應該還是要另外轉換成binary,如果直接 09/29 22:42
gimmy731031:能給binary值,系統就不用轉換了~還是我觀念有誤@@? 09/29 22:44
waterleader:bianry->binary 09/29 22:45
gimmy731031:阿阿~打字沒注意到^^" 09/29 22:49
james732:我知道原po的問題,但實在不知要怎麼講才會清楚... 09/29 23:12
※ 編輯: gimmy731031 來自: 122.146.83.43 (09/30 00:32) ※ 編輯: gimmy731031 來自: 122.146.83.43 (09/30 00:33)
sbrhsieh:數值就是數值,沒有進制之分. 進制是描述數值的方式 09/30 01:10
LPH66:這麼說好了 就算需要轉也不是你的程式在轉 09/30 03:13
LPH66:而是 javac 在編譯時就先翻好了 程式只是拿來運算而已 09/30 03:14
LPH66:不管你寫 0xFF 255 0377 0b11111111 都一樣 javac 翻過之後 09/30 03:16
LPH66:.......(還是看回文好了 orz 總覺得又會推一串) 09/30 03:18