Массив байтов со всеми 0x00 равен 0x08? - PullRequest
1 голос
/ 09 апреля 2010

Я думаю, что столкнулся с чем-то необычайно странным в VS 2008.

альтернативный текст http://lh6.ggpht.com/_SDci0Pf3tzU/S79i9MwKINI/AAAAAAAAFe4/jrRsiTKSUSk/weird%20behavior.jpg

Все значения массива 0x00, но почему он отображается 0x00000008 в начале переменной?

Ответы [ 5 ]

9 голосов
/ 09 апреля 2010

Visual studio отображает размер вашего массива (в элементах), а не значение. В вашем массиве восемь байтов, обозначенных byte[8] в десятичном виде или byte[0x00000008] в виде 32-разрядного шестнадцатеричного значения.

Щелкните правой кнопкой мыши по окну и выберите Hexadecimal Display, чтобы переключиться на десятичное представление значений. Я считаю десятичное представление более работоспособным при работе с маленькими целочисленными типами, и вас не смущают все дополнительные шестнадцатеричные обозначения (хотя это зависит от ваших личных предпочтений).

4 голосов
/ 09 апреля 2010

Это длина массива. Восемь элементов.

1 голос
/ 09 апреля 2010

Это длина массива. Обратите внимание, что в первом столбце перечислены индексы - в массиве восемь элементов. (Можно подумать, что значение массива - это байтовый массив с восемью элементами).

1 голос
/ 09 апреля 2010

8 относится к длине байтового массива.

1 голос
/ 09 апреля 2010

Поскольку это массив из 8 значений, от 0 до 7

...