數字工具

3 個工具

進制轉換

二、八、十、十六進制互轉

隨機數產生器

產生隨機整數、UUID、字串

數字格式化

加入千分位、指定小數位數

這三個工具解的是三件不相干的事:換一個進制來看同一個數、生出一批不重複的值、把數字排版成人看得懂的樣子。共通點是它們都在瀏覽器的數值型別上運作,因此共用同一條天花板 —— 安全整數只到 2^53 - 1。

該用哪一個工具

進制轉換
看記憶體位址、權限遮罩或組態檔的十六進制數時用它,四個進制欄位互相同步。它只處理整數,小數點打不進去;負數以前面加減號表示而不是二補數,所以 -8 的二進制顯示為 -1000,不是你在暫存器裡看到的那串 1。數值超出安全整數範圍時上方會出現警告。
隨機數產生器
要一批測試資料、一個唯一識別碼或一組佔位字串時用它。三個分頁的亂數來源不同,這點比功能本身重要:UUID 分頁走瀏覽器的 crypto.randomUUID,是密碼學等級的來源;整數與字串兩個分頁走 Math.random,輸出可被反推,不要拿來當密碼、API 金鑰或重設連結裡的 token。
數字格式化
要把數字排成報表看得懂的樣子時用它:千分位符號、小數點符號、小數位數(0 到 10)與科學記號都可以選。讀入時它只認 . 當小數點,歐洲寫法的 1.234,56 會被誤讀成 1.234;小數位數是四捨五入補齊的,設少了就是真的丟掉精度。

共通限制

  • 三個工具都只認半形阿拉伯數字,全形數字要先用文字工具的全半形轉換處理過。隨機整數與字串一次最多 100 筆,長度上限 256。
  • 進制轉換與數字格式化都靠瀏覽器的 Number 型別,超過 2^53 - 1 的值(例如 64 位元的資料庫主鍵)會在轉換過程中被無聲地四捨五入,這類數字請在後端以字串處理。
  • 產生與轉換都發生在本機,隨機值不是向伺服器要來的,也沒有任何一筆結果被記錄下來;反過來說,離開頁面就找不回來了,需要的話請先按複製。(頁面本身載有第三方廣告資源,與這裡算出來的值無關。)

常見問題

隨機字串可以拿來當密碼嗎?

不建議。字串分頁用的是 Math.random,它的內部狀態可以從足夠多的輸出反推出來,對測試資料夠用,對安全用途則不行;真的需要高強度的值請改用 UUID 分頁。

為什麼十六進制轉出來的長度和我預期的不一樣?

因為這裡輸出的是數值本身的最短表示,不補前導零,也沒有固定位寬的概念。255 轉出來是 FF 而不是 000000FF;要對齊 32 或 64 位元的欄位寬度請自行補零。