mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
48 lines
847 B
Plaintext
48 lines
847 B
Plaintext
/*
|
|
Author: commy2
|
|
|
|
Description:
|
|
Converts number to hexadecimal number
|
|
|
|
Arguments:
|
|
A number
|
|
|
|
Return Value:
|
|
A hexadecimal number, String
|
|
*/
|
|
#include "\z\ace\addons\core\script_component.hpp"
|
|
|
|
private ["_number", "_minLength", "_sign", "_hex", "_rest"];
|
|
|
|
_number = _this select 0;
|
|
_minLength = _this select 1;
|
|
|
|
if (isNil "_minLength") then {_minLength = 1};
|
|
|
|
_sign = ["", "-"] select (_number < 0);
|
|
|
|
_number = round abs _number;
|
|
_hex = ["", "0"] select (_number == 0);
|
|
|
|
while {_number > 0} do {
|
|
_rest = _number mod 16;
|
|
_rest = switch _rest do {
|
|
case 10 : {"A"};
|
|
case 11 : {"B"};
|
|
case 12 : {"C"};
|
|
case 13 : {"D"};
|
|
case 14 : {"E"};
|
|
case 15 : {"F"};
|
|
default {str _rest};
|
|
};
|
|
_number = floor (_number / 16);
|
|
|
|
_hex = _rest + _hex;
|
|
};
|
|
|
|
while {count toArray _hex < _minLength} do {
|
|
_hex = "0" + _hex;
|
|
};
|
|
|
|
_sign + _hex
|