Что меня интересовало, как обозначать отрицательные числа в шестнадцатеричном формате? Как -0xff или 0x-ff? Думаю, первое, но не знаю.
Люк
7
@Luc Первый правильный. Хотя чаще вижу именно 0xffffffffтакие. ( 0xffffffff = -1для 32-битного int с дополнением до 2)
Mysticial
@Luc Отрицательные числа представлены в двоичном формате с использованием дополнения до 2 - умный способ, который не требует знака «-». Итак, это в основном преобразование из двоичного в шестнадцатеричное, отрицательное или положительное.
Шуво Саркер,
@ShuvoSarker Спасибо за добавление! Это просто представление памяти, я думаю, похоже на то, если бы мы согласились, что у нас есть набор чисел от 0 до 999 и что 1000-1999 будут представлять отрицательные числа. Мой вопрос касался удобочитаемых обозначений, хотя знание того, как компьютеры делают это, могло бы помочь кому-то другому, так что спасибо :)
Люк,
16
В C и языках, основанных на синтаксисе C, префикс 0xозначает шестнадцатеричный (основание 16).
Таким образом, 0x400 = 4 × (16 2 ) + 0 × (16 1 ) + 0 × (16 0 ) = 4 × ((2 4 ) 2 ) = 2 2 × 2 8 = 2 10 = 1024, или один двоичный K .
Это префикс, указывающий, что число имеет шестнадцатеричный формат, а не другую основу. Язык программирования C использует его, чтобы сообщить компилятору.
Пример :
0x6400переводится как 6*16^3 + 4*16^2 + 0*16^1 +0*16^0 = 25600.Когда компилятор читает 0x6400, он понимает, что число является шестнадцатеричным с помощью термина 0x. Обычно мы можем понять по (6400)16 or (6400)8любой базе ..
0x prefix C++
приводит вас сюда прямо сейчас :)Ответы:
Литералы, начинающиеся с,
0x
являются целыми шестнадцатеричными числами. (основание 16)Номер
0x6400
есть25600
.Например, включая буквы (также используется в шестнадцатеричной системе счисления, где A = 10, B = 11 ... F = 15)
Номер
0x6BF0
есть27632
.источник
0xffffffff
такие. (0xffffffff = -1
для 32-битного int с дополнением до 2)В C и языках, основанных на синтаксисе C, префикс
0x
означает шестнадцатеричный (основание 16).Таким образом, 0x400 = 4 × (16 2 ) + 0 × (16 1 ) + 0 × (16 0 ) = 4 × ((2 4 ) 2 ) = 2 2 × 2 8 = 2 10 = 1024, или один двоичный K .
Итак, 0x6400 = 0x4000 + 0x2400 = 0x19 × 0x400 = 25K
источник
Это шестнадцатеричное число.
источник
Числа, начинающиеся с,
0x
являются шестнадцатеричными (основание 16).0x6400
представляет25600
.Конвертировать,
Множители 1, 16, 256 и т. Д. Представляют собой возрастающую степень 16.
или
источник
ПРОСТО
Это префикс, указывающий, что число имеет шестнадцатеричный формат, а не другую основу. Язык программирования C использует его, чтобы сообщить компилятору.
Пример :
0x6400
переводится как6*16^3 + 4*16^2 + 0*16^1 +0*16^0 = 25600.
Когда компилятор читает0x6400
, он понимает, что число является шестнадцатеричным с помощью термина 0x. Обычно мы можем понять по(6400)16 or (6400)8
любой базе ..Надежда в чем-то помогла.
Добрый день,
источник