Я пытаюсь понять, почему 16-битный, а не только 8-битный для типа SByte (AKA: знаковый символ).
$base = 2
# 8-bit (char et unsigned char)
$("byte : " + [byte]::MinValue.ToString() + " to " + [byte]::MaxValue.ToString())
$bin = [Convert]::ToString([byte]::MaxValue, $base).PadLeft(8, "0")
$($bin.Length.ToString() + "," + $bin)
$bin = [Convert]::ToString([byte]::MinValue, $base).PadLeft(8, "0")
$($bin.Length.ToString() + "," + $bin)
$("sbyte : " + [sbyte]::MinValue.ToString() + " to " + [sbyte]::MaxValue.ToString())
$bin = [Convert]::ToString([sbyte]::MaxValue, $base).PadLeft(8, "0")
$($bin.Length.ToString() + "," + $bin)
$bin = [Convert]::ToString([sbyte]::MinValue, $base).PadLeft(8, "0")
$($bin.Length.ToString() + "," + $bin)
Вывод:
sbyte : -128 to 127 (signed 8bit)
01111111
0x7f
1111111110000000
0xff80
Если это связано с двумядополнение, это моя операционная система или аппаратный уровень?