Назовите это так
body.addEventListener('keyup', (ev) => this.moveAvatar(ev));
(ИЛИ)
body.addEventListener('keyup', this.moveAvatar.bind(this));
Преобразуйте INT для преобразовывания в шестнадцатеричную систему:
SELECT CONVERT(VARBINARY(8), 16777215)
Преобразуйте шестнадцатеричное число в INT:
SELECT CONVERT(INT, 0xFFFFFF)
Вышеупомянутый пример имеет ограничение, что это только работает, когда ШЕСТНАДЦАТЕРИЧНОЕ значение дано как целочисленный литерал. Для полноты, если значение для преобразования является шестнадцатеричной строкой (такой, как найдено в varchar столбце) использование:
-- If the '0x' marker is present:
SELECT CONVERT(INT, CONVERT(VARBINARY, '0x1FFFFF', 1))
-- If the '0x' marker is NOT present:
SELECT CONVERT(INT, CONVERT(VARBINARY, '1FFFFF', 2))
Примечание: Строка должна содержать четное число шестнадцатеричных цифр. Нечетное число цифр приведет к ошибке.
Больше деталей может быть найдено в разделе "Binary Styles" БРОСКА и ПРЕОБРАЗОВАТЬ (Transact-SQL). Я верю SQL Server 2008, или позже требуется.
Используйте master.dbo.fnbintohexstr (16777215)
для преобразования в представление varchar
.
Вот функция для SQL-сервера, которая преобразует целочисленное значение в его шестнадцатеричное представление как varchar. Его должно быть легко адаптировать к другим типам баз данных
Например:
SELECT dbo.ToHex(4095) --> FFF
SQL:
CREATE FUNCTION ToHex(@value int)
RETURNS varchar(50)
AS
BEGIN
DECLARE @seq char(16)
DECLARE @result varchar(50)
DECLARE @digit char(1)
SET @seq = '0123456789ABCDEF'
SET @result = SUBSTRING(@seq, (@value%16)+1, 1)
WHILE @value > 0
BEGIN
SET @digit = SUBSTRING(@seq, ((@value/16)%16)+1, 1)
SET @value = @value/16
IF @value <> 0 SET @result = @digit + @result
END
RETURN @result
END
GO