Является дополнительная нотация two положительного числа тем же числом?

Вы не можете объединять объекты из набора результатов. Таким образом, вы должны преобразовать свой результат в массив сначала до слияния. Попробуйте приведенный ниже скрипт.

public function show($pest)
{
  $theactives = self::getActives($pest);
  $thefactsheets = self::getFactsheets($pest);

  return array_merge($theactives, $thefactsheets);
}

public function getActives($pest){
  return Active::where('pests.id',$pest)
    ->join("active_pest","actives.id","=","active_pest.active_id")
    ->join("pests","pests.id","=","active_pest.pest_id")
    ->select('ai', 'groupcode', 'risk', 'pest')
    ->orderBy('ai')
    ->get()->toArray();
}

public function getFactsheets($pest){
  return  Factsheet::where('pest_id',$pest)
    ->join("factsheet_pest","factsheets.id","=","factsheet_pest.factsheet_id")
    ->select('title', 'factsheets.id')
    ->orderBy('title')
    ->get()->toArray();
}
11
задан yesraaj 17 May 2009 в 14:27
поделиться

7 ответов

Является ли запись двоичного числа с положительным числом одним и тем же числом?

Хороший пример из wiki , что связь с дополнением до двух реализуется, если заметить, что 256 = 255 + 1, и (255 - x) является дополнением единицы к x

0000 0111 = 7 дополнение к двум - это 1111 1001 = -7

, то, как он работает, - это то, что msb (старший значащий бит) получает отрицательный значение, таким образом, в случае выше

-7 = 1001 = -8 + 0+ 0+ 1

Edit- Положительное число, записанное в двоичном коде дополнения, совпадает с числом, записанным в беззнаковом обозначении ( хотя самый значимый бит должен быть равен нулю). Отрицательное число может быть записано в двоичной записи дополнения путем инвертирования всех битов его абсолютного значения с последующим добавлением единицы к результату. Два»

7
ответ дан 3 December 2019 в 02:41
поделиться

Это правда. Если мы не добавим 1 к представлению отрицательного числа, у нас будут значения 0 и -0, что является пустой тратой.

0
ответ дан 3 December 2019 в 02:41
поделиться

Некоторые из ответов и комментариев приводят к путанице между отношением «дополнение к двум» и «дополнение к двум». Возможно, этот вопрос нужно немного уточнить, но он явно задает вопрос о «нотации дополнения до двух».

Нотация дополнения до двух включает как положительные, так и отрицательные числа. Двоичные числа могут означать много вещей, поэтому для определения того, что должно представлять любое двоичное число, нужно сначала знать, какая нотация или кодировка используется. Двоичное число может быть целым числом без знака, целым числом дополнения до двух, числом с плавающей запятой IEEE, строкой символов или чем-то еще.

Таким образом, 7 в двоичной записи дополнения равно 00000111, так же, как целое число без знака. А -7 в два вышло

9
ответ дан 3 December 2019 в 02:41
поделиться

Нет, дополнение 2 положительного числа не совпадает с номером, они не сохраняются в форме дополнения 2 в памяти. В случае положительных чисел они сохраняются как есть в памяти, только в случае отрицательных чисел представление находится в форме дополнения 2 Отрицательные числа хранятся в форме дополнения 2, потому что дополнение 2 хорошо для вычитания. Пример: 5 + -7 = -2 Здесь -7 хранится в форме дополнения 2 (1001). 0101 + 1001 = 1110 Обратите внимание, что мы автоматически получаем отрицательный ответ

1
ответ дан 3 December 2019 в 02:41
поделиться

Я думаю, что вы что-то здесь путаете. Положительные целые числа обычно хранятся в виде простых двоичных чисел. 1 - 1, 10 - 2, 11 - 3 и т. Д. Отрицательные целые числа сохраняются как дополнение двух их абсолютного значения , то есть соответствующего положительного целого числа. Дополнение к положительному числу двух является, при использовании этой записи, отрицательным числом.

Чтобы перевернуть знак числа, вы всегда вычисляете дополнение этих двух чисел: переверните все биты, а затем добавьте 1. Это не зависит от того, является ли исходное число положительным или отрицательным.

Пример: 3 в 8-битной двоичной записи со знаком - 00000011. Чтобы перевернуть знак, сначала нужно перевернуть все биты (11111100), а затем добавить 1 (11111101). Итак, -3 - это 11111101. Чтобы снова перевернуть знак, сначала нужно перевернуть все биты (00000010), затем добавить 1 (00000011),

9
ответ дан 3 December 2019 в 02:41
поделиться

Вы можете использовать this , чтобы проверить, как числа представлены в виде двоек.

-1
ответ дан 3 December 2019 в 02:41
поделиться

из того, что я узнал в классе информатики, дополнение до двух, дополнение до единицы и величина со знаком одинаковы только в положительном целочисленном значении. Это будет отличаться от отрицательных целочисленных значений, где для одного дополнения вам придется перевернуть биты, а для двух дополнений, сохраняя перевернутые биты и добавляя 1 бит, чтобы получить отрицательный бит к его абсолютному целому числу.

Я все еще учусь, студент первого курса информатики, надеюсь, это помогло.

6
ответ дан 3 December 2019 в 02:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: