HEX 轉 RGB 公式與計算方法

學會手動將 HEX 色碼轉換為 RGB。了解十六進位到十進位的轉換原理、計算步驟和 JavaScript 實作。

轉換原理

HEX 色碼本質上就是 RGB 值的十六進位表示。#RRGGBB 中:

  • RR = 紅色通道的十六進位值
  • GG = 綠色通道的十六進位值
  • BB = 藍色通道的十六進位值
  • 轉換就是把每組兩位數從十六進位轉為十進位。

    十六進位對照表

    十六進位十進位
    00
    1-91-9
    A10
    B11
    C12
    D13
    E14
    F15

    計算公式

    每組兩位數的轉換公式:

    十進位 = 第一位 × 16 + 第二位

    實際範例

    範例一:#FF5733

  • R = FF → 15×16 + 15 = 255
  • G = 57 → 5×16 + 7 = 87
  • B = 33 → 3×16 + 3 = 51
  • 結果:rgb(255, 87, 51)
  • 範例二:#2596BE

  • R = 25 → 2×16 + 5 = 37
  • G = 96 → 9×16 + 6 = 150
  • B = BE → 11×16 + 14 = 190
  • 結果:rgb(37, 150, 190)
  • 範例三:#000000

  • R = 00 → 0×16 + 0 = 0
  • G = 00 → 0
  • B = 00 → 0
  • 結果:rgb(0, 0, 0)(黑色)
  • 反向:RGB 轉 HEX

    公式:十進位 ÷ 16 = 商...餘數 → 第一位第二位

    例如 RGB(37, 150, 190):

  • 37 ÷ 16 = 2...5 → 25
  • 150 ÷ 16 = 9...6 → 96
  • 190 ÷ 16 = 11...14 → BE
  • 結果:#2596BE
  • JavaScript 實作

    // HEX → RGB
    function hexToRgb(hex) {
      const r = parseInt(hex.slice(1, 3), 16);
      const g = parseInt(hex.slice(3, 5), 16);
      const b = parseInt(hex.slice(5, 7), 16);
      return { r, g, b };
    }
    
    // RGB → HEX
    function rgbToHex(r, g, b) {
      return '#' + [r, g, b]
        .map(v => v.toString(16).padStart(2, '0'))
        .join('');
    }
    
    // 使用
    hexToRgb('#2596BE'); // { r: 37, g: 150, b: 190 }
    rgbToHex(37, 150, 190); // '#2596be'

    更多教學