LINUX.ORG.RU

не совсем совпадающая семантика:

$a = $a % 65536;

dilmah ★★★★★
()

#!/usr/bin/perl

my $a = 65536;

print $a % 65535 . "\n";

так чтоли?
конкретизируй если нет.

anonymous
()
Ответ на: комментарий от anonymous

$a = $a % 65536; - не подошло т.к. если $a=65535, то при такой фукции $a = $a % 65535, $a=0 !!!

$a&=0xFFFF; - не подошло т.к. если $a=65536, то при такой фукции $a&=0xFFFF $a=0 !!!

lioncub ★★
() автор топика
Ответ на: комментарий от lioncub

Re^2: Математический модуль в perl

> $a = $a % 65536; - не подошло т.к. если $a=65535, то при такой фукции $a = $a % 65535, $a=0 !!!

так потомучто %6553_6_ а не %65535

perl -e 'print 65535%65536'

65535

sm00th
()

Что именно надо?

$a = $a>65535 ? $a-65535 : $a;

$a = $a%65535;

$a = $a && $a%65535;

$a = 1+($a-1)%65535;

$a = ($a >> 16) | ($a & 0xffff);

$a = 1;

alexsaa
()
Ответ на: комментарий от alexsaa

$a принимает значения от 1 и больше..
в итоге должно получится от 1 до 65535 как в моем цикле...!
если $a=65535, то $a=65535, если $a=65536, то $a=1 и т.д.

lioncub ★★
() автор топика
Ответ на: комментарий от lioncub

Вот надо было словами пояснить, а не кривокодом.
Самое примитивное:
print ( $a > 65535 ? $a % 65535 : $a);

anonymous
()

(($a - 1) % 65535) + 1

1->1
65535->65535
65536->1

anonymous
()
Ответ на: комментарий от anonymous

кривокод не кривокод, а свою функцию выполнякт до 131070.
а твой при $a=131070 показывает 0, а должна показать 65535...
Вот только моя если $a больше чем 131070 уже не выполняет требования,
от 1 до 65535!

lioncub ★★
() автор топика
Ответ на: комментарий от lioncub

> кривокод не кривокод, а свою функцию выполнякт до

если задачу описывать через код (как ты это здесь делаешь), то любой код всегда выполняет свою функцию.

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

alexsaa
()
Ответ на: комментарий от alexsaa

Спасибо всем!

Я изначально не просил точной функции, а просил как можно написать по другому... Чтобы знать варианты решений... Доделать под свою задачу уже не проблема.

lioncub ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.