Re: [問題] Binary 轉十進位如何實現疑問
※ 引述《gimmy731031 (yuancheng)》之銘言:
: 大家好,小弟對於Java binary 處理有些疑問,想和前輩們請教一下,
: Java binary 就我所知要轉成10進位數值有兩種方式,
: 1. int i = Integer.parseInt( "11111111", 2);
: 2. int i = 0b11111111;
: 這兩種不同的方法宣告,在底層的運算上是否相同呢?
前者是在執行時期呼叫 Integer.parseInt 將字串轉成 int;
後者則是在 compile time 就事先將字串轉成數字,
以 literal 型式存在 byte code 中。
不過 "有可能" compiler 也正好也是用 Integer.parseInt 就是。
: 另外Java在讀這個binary的數值的時候,它是怎麼知道這個String是255呢?
: 是不是它去讀取這個String 每個 char[i] 陣列內的數值(0 or 1),
: 之後再去乘以2的i次方,最後再把這個值算出來,
: 因為我在Integer.parseInt這個方法裡面追朔,並沒有看到這樣的寫法,
注意看裡頭的 while 迴圈,result 每回合都會乘上 radix,
這算法在計概通常都會教。
基本上也就是你說的意思,只是這樣實作起來比較容易。
: 也不知道和0b11111111的處理方式有什麼不一樣,
: 所以想請教一下底層的運算是否和我想的一樣呢?
: 還是哪裡可以找的到相關的資源呢@@~
: 以上,先謝謝各位了。
: PS:binary轉int應該就只有這兩種方式吧@@??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.78.231
推
10/02 16:05, , 1F
10/02 16:05, 1F
→
10/02 16:06, , 2F
10/02 16:06, 2F
推
10/03 14:58, , 3F
10/03 14:58, 3F
推
10/03 21:07, , 4F
10/03 21:07, 4F
推
10/04 01:21, , 5F
10/04 01:21, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):