---
title: "十六进制颜色 | open.mp"
description: "SA-MP中的十六进制颜色表示方法"
canonical: https://omp.itsneufox.com/zh-CN/docs/scripting/resources/hexcolors
language: zh-CN
---

# 十六进制颜色

## 什么是十六进制？

十六进制（简称 Hex）是一种采用 16 个不同符号的计数系统（即基数为 16）。相较于我们熟悉的十进制（基数为 10，使用 0-9 共 10 个符号），十六进制的符号组成如下：

* * *

### 十进制（基数为 10）

```c
0
1
2
3
4
5
6
7
8
9
```

* * *

### 十六进制（基数为 16）

```c
0
1
2
3
4
5
6
7
8
9
A //10
B //11
C //12
D //13
E //14
F //15
```

当数字符号用尽后，十六进制使用字母作为补充。字母 A-F 分别代表 10-15 的数值。

现在让我们看看一些更大的数字。

* * *

### 数值对比示例

#### 十进制（基数为 10）

```c
255
```

#### 十六进制（基数为 16）

```c
FF
```

数字 255 很容易理解，但什么是“FF”？让我们看看两者的指数符号。

* * *

### 数值分解说明

备注

下文中的"^"符号表示幂运算，非按位异或运算符。

#### 十进制解析

```c
2 * (10^2) + 5 * (10^1) + 5 * (10^0)
= 200 + 50 + 5
= 255
```

#### 十六进制解析

```c
F * (16^1) + F * (16^0)
= 15 * 16 + 15 * 1
= 240 + 15
= 255
```

* * *

## 何时及如何使用十六进制

十六进制并没有唯一的应用场景，你可以在任何需要时使用它，但最常见的用途是颜色定义（我们将在后文详述）。部分开发者会将十六进制作为可视化辅助工具来提高代码可读性（例如 Y\_Less 的代码风格）：

备注

以下为进阶示例，如暂时无法理解无需担忧

```c
var = b & 0x04
```

此写法清晰表明了需要获取变量 b 低字节中的第 3 个高位比特（二进制 00000100）。相较而言：

```c
var = b & 4
```

这种十进制写法在视觉上不够直观。

请注意"04"前的"0x"前缀。这是 PAWN 语言中专用于表示十六进制常量的标识符（如同"0b"用于表示二进制常量）。

* * *

## 颜色格式规范

SA-MP 采用 8 位十六进制颜色编码：

```c
RR - 红色分量（FF为最大值，00为最小值）
GG - 绿色分量（FF为最大值，00为最小值）
BB - 蓝色分量（FF为最大值，00为最小值）
AA - 透明度（FF为完全不透明，00为完全透明）
```

* * *

## 颜色示例

### 基础色

```c
0x00000000 - 纯黑
0xFF0000FF - 亮红
0x00FF00FF - 亮绿
0x0000FFFF - 亮蓝
0xFFFFFFFF - 纯白
```

### 混合色

```c
0xFFFF00FF - 亮黄
0xFF00FFFF - 亮紫
0x00FFFFFF - 亮青
```

如需更多颜色代码，推荐使用在线转换工具：[颜色代码转换器](https://www.colorhexa.com/)
