# encoding: ascii
# api: powershell
# title: PoSh hex2dec
# description: Fixed some issues
# version: 0.1
# type: function
# author: greg zakharov
# license: CC0
# function: Convert-Hex2Dec
# x-poshcode-id: 4600
# x-archived: 2013-11-14T15:07:25
# x-published: 2013-11-11T14:12:00
#
#
#requires -version 2.0
Set-Alias hex2dec Convert-Hex2Dec
function Convert-Hex2Dec {
<#
.EXAMPLE
PS C:\> Convert-Hex2Dec 7717
7717 = 0x1E25
.EXAMPLE
PS C:\> hex2dec fa
0xFA = 250
.EXAMPLE
PS C:\> "0x15" | hex2dec
0x15 = 21
.EXAMPLE
PS C:\> Convert-Hex2Dec x200
0x200 = 512
#>
param(
[Parameter(Mandatory=$true,
ValueFromPipeline=$true)]
[ValidateNotNullOrEmpty()]
[String]$Number
)
begin {
function col($c) {$host.UI.RawUI.ForegroundColor = $c}
$old = $host.UI.RawUI.ForegroundColor
}
process {
if ($Number -match "^[0-9]+$") {
col "Magenta"
"{0} = 0x{1:X}`n" -f $Number, [Int32]$Number
col $old
}
elseif ($Number -match "^(0x|x)|([0-9]|[a-f])+$") {
col "Cyan"
try {
switch ($Number.Substring(0, 1)) {
"x" {"0x{0} = {1}`n" -f $Number.Substring(1, $Number.Length - 1).ToUpper(), `
[Int32]("0" + $Number)}
"0" {"0x{0} = {1}`n" -f $Number.Substring(2, $Number.Length - 2).ToUpper(), `
[Int32]$Number}
default {
"0x{0} = {1}`n" -f $Number.ToUpper(), [Int32]("0x" + $Number)
}
}
}
catch {}
col $old
}
}
}