Предполагая, что у вас есть объект Request, вы можете использовать:
string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~"));
Если он недоступен, вы можете перейти к нему через контекст:
var request = HttpContext.Current.Request
Если учесть, что шестнадцатеричная система счисления является основанием 16, на самом деле это довольно просто:
Начните с наименее значащей цифры и двигайтесь к наиболее значащей (справа налево) и умножьте цифру с увеличением степени 16, затем суммируйте результат.
Например:
0x12 = 2 + (1 * 16) = 18
0x99 = 9 + (9 * 16) = 153
Тогда помните, что A = 10, B = 11, C = 12, D = 13, E = 14 и F = 15
Итак,
0xFB = 11 + (15 * 16) = 251
Десятичное значение будет
20h = 0x16^0 + 2x16^1 = 0x1 + 2x16 = 0 + 32 = 32
в десятичной записи или (32)10
.
Для 40h
в гекса у нас будет 64
в десятичном виде, для EOH
у нас будет 224
в десятичном виде.
Я не нашел ничего из этого полезного, поэтому вот мой способ: превратить его в два набора двоичных чисел для представления каждой буквы, затем взять все двоичное представление и преобразовать в десятичное число
Пример: AB
A / B
= 1010/1011 в двоичном формате
= 171 (128 + 0 + 32 + 0 + 8 + 0 + 2 + 1) в десятичном виде
Я практически перестал это делать, когда обнаружил, что шестнадцатеричные числа, с которыми я работал, были 32-битными.
Для меньших чисел я (в конце концов) запомнил несколько шаблонов: 10 = 16, 20 = 32, 40 = 64, 80 = 128 (потому что 100 = 256, а 80 на один бит меньше). 200 = 512 Я помню из-за того, что я использовал какую-то машину с размером страницы 512 (уже не помню, на какой машине!). 1000 = 4096, потому что это размер страницы другого компьютера.
также, 64 = 100, 32 = 50, B8 = 200
Вот и все. Кроме того, добавляю.
That's not the formula.. that's not even somewhat like the formula...
The formula is:
X*16^y where X is the number you want to convert and y is the position for the number (from right to left).
So.. if you want to convert DA145 to decimal would be..
(5 * 16^0) + (4 * 16^1) + (1 * 16^2) + (10 * 16^3) + (13 * 16^4)
And you have to remember that the letter are:
A - 10
B - 11
C - 12
D - 13
E - 14
F - 15
Для справки: ваш мозг действительно использует функциональный метод поиска ответа. Вот функция, которую мой мозг использует, чтобы найти значение шестнадцатеричного числа:
Запомните десятичные значения 20h, 40h и т. Д. До E0h. (Я полагаю, вы уже знаете 100 ч.) Затем получите десятичные значения, если другие числа, добавив или вычтя число от 1 до 16.