SByte (подписано) - 16 бит, а не 8 бит для минимального значения sbyte - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь понять, почему 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

Если это связано с двумядополнение, это моя операционная система или аппаратный уровень?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...