Re: [問題] Java byte 存入 Oracle Raw Data Type …

看板java作者 (-858993460)時間12年前 (2011/09/30 03:39), 編輯推噓3(302)
留言5則, 2人參與, 最新討論串2/2 (看更多)
: → 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 這麼說好了 就算需要轉也不是你的程式在轉 而是編譯器/直譯器在編譯時就先翻好了 程式只是拿來運算而已 (編譯器例如你寫 java 程式時用的 javac 直譯器例如你原來問題裡分析 SQL 語言的程式) 不管你在程式裡寫 0xFF 255 0377 0b11111111 都一樣 經過翻譯之後電腦只會看到一個數 它的值是 255 你可以把它理解成數學上的兩百五十五這個數這種感覺 就算你把它寫成十六進位的 0xFF 或是八進位的 0377 甚至是二進位的 0b11111111 本質上它還是 255 這個數 其他地方的資料(不管是磁碟/資料庫/還是什麼勞什子的資料來源)也是一樣的 說到底那些不過都是些數而已 (連我們在打的這些字電腦看起來都是數) 你會有這種問題是因為電腦看數的方式和人類不一樣 同樣表示數學上兩百五十五這個數 我們人類用十進位來看所以寫成 255 電腦用二進位來看所以"寫"成 11111111 這樣而已 將你的 java 程式或 SQL 裡寫的 255 這三個字翻成數學上的 255 這個數的工作 則是編譯器/直譯器幫你完成的 再來 我剛剛提到其他的什麼資料來源也不過就是許多數 (你可以把那些資料理解成一大串範圍在 0~255 之間的數) 那麼程式讀取資料就只不過是把這些數搬進他的程式記憶空間裡去罷了 既然兩邊都是數 概念上就不存在什麼進制問題 只是單純的把這些數拿來運算而已 那當然為了要能夠"算"得要有個形式 就像我們人類在運算數字是會藉由十進位的形式運算一樣 電腦在運算這些數字藉由的是二進位的形式 如此而已 所以上面寫的"翻成數學上的 255"字面上來說其實不太對 實際上它是翻成電腦藉以運算的二進位形式 這樣電腦才能夠用它的方式來做這些數的運算 這樣不知道你腦筋裡的結轉開沒有...? -- 總感覺偏題偏到計算機概論的東西去了....orz -- LPH [acronym] = Let Program Heal us -- New Uncyclopedian Dictionary, Minmei Publishing Co. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.24.106 ※ 編輯: LPH66 來自: 140.112.24.106 (09/30 03:40)

09/30 07:40, , 1F
祭司那邊的 SQL 是怎麼下... 這可能才是原 po 的問題根源
09/30 07:40, 1F
我打這篇文時完全忘了他的問題是 SQL...我修一下文字 ※ 編輯: LPH66 來自: 140.112.28.92 (09/30 16:52)

09/30 22:12, , 2F
真的非常感謝前輩們的指點,我腦袋終於通了~這裡厚顏
09/30 22:12, 2F

09/30 22:15, , 3F
想另外請教0b11111111和Interger.valueOf("11111111")
09/30 22:15, 3F

09/30 22:19, , 4F
,2),是否底層都是用for迴圈計算其int值呢?感謝感謝~~
09/30 22:19, 4F

09/30 22:49, , 5F
底層使用int b = 1*(2^0)+1*(2^1)...這樣算出b的值呢?
09/30 22:49, 5F
文章代碼(AID): #1EXCbxnG (java)
文章代碼(AID): #1EXCbxnG (java)