Как целые числа внутренне представлены на уровне битов в Java?

Я пытаюсь понять, как Java хранит целые числа внутри. Я знаю, что все java примитивные целые числа подписаны (кроме коротких?). Это означает, что в байте для номера доступно меньше одного бита.

Мой вопрос, все ли целые числа (положительные и отрицательные) хранятся как дваs дополняют или являются только отрицательными числами в двухс дополнением?

Я вижу, что спецификация говоритx bit two's complement number, Но я часто путаюсь.

Например:

  int x = 15; // Stored as binary as is?  00000000 00000000 00000000 00001111?
  int y = -22; // Stored as two complemented value? 11111111 11111111 11111111 11101010

редактировать

Чтобы быть ясным,x = 15

   In binary as is: `00000000 00000000 00000000 00001111'
  Two's complement: `11111111 11111111 11111111 11110001`

Так что, если ваш ответall числа хранятся как дваС дополнением тогда:

  int x = 15; // 11111111 11111111 11111111 11110001
  int y = -22 // 11111111 11111111 11111111 11101010

Беспорядок здесь снова - знак говорит, оба - отрицательные числа. Может быть, я неправильно понимаю / неправильно понимаю?

редактировать Не уверен, что мой вопрос сбивает с толку. Вынужден выделить вопрос:

Мой вопрос точно: положительные числа хранятся вbinary as is в то время как отрицательные числа хранятся как?two's complement

Некоторые говорили, что все хранятся в двухс дополнением и один ответ говорит, что только отрицательные числа хранятся как двас дополнением.

Ответы на вопрос(10)

Ваш ответ на вопрос