ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #15101  
Старый 09.03.2010, 14:10
budden
Участник форума
Регистрация: 26.07.2008
Сообщений: 267
Провел на форуме:
1343031

Репутация: 184
По умолчанию

Цитата:
Сообщение от Gifts  
Для строк произвольной длинны - получился такой вот треш код:
PHP код:
$a '79777F8084';
$b '48454C4C4F';


function 
hex_sub($a,$b)
{
    if (!
function_exists('hex_sub_1')) {
        function 
hex_sub_1($a,$b)
        {
            global 
$zaem;
            
$a intval($a,16);
            
$b intval($b,16);
            if (
$a $b
            {
                
$out $a $b 256 $zaem;
                
$zaem 1;
            } else 
$out $a $b $zaem;
            return 
sprintf("%X"$out);
        }
    }
    if (!
is_string($a) or !is_string($b)) return false;
    
$out '';
    
$zaem 0;
    
$len max(strlen($a),strlen($b));
    
$len $len $len+$len;
    
$a str_split(str_pad($a$len'0'STR_PAD_LEFT), 2);
    
$b str_split(str_pad($b$len'0'STR_PAD_LEFT), 2);
    
$a_part end($a);
    
$b_part end($b);
    
$out hex_sub_1($a_part,$b_part);
    while ((
$a_part prev($a))!==false)
    {
        
$b_part prev($b);
        
$out hex_sub_1($a_part,$b_part).$out;
    }
    return 
$out;
}
echo 
hex_sub($a,$b); 
Спасибо, Gifts!
Да, у меня строки по 32 символа, можно еще попрошу, если есть время, посмотрите - правилньо ли я преобразовал функцию, чтобы она считала сумму, а не разность?

PHP код:
    if (!function_exists('hex_add_1')) {
        function 
hex_add_1($a,$b)
        {
            global 
$zaem;
            
$a intval($a,16);
            
$b intval($b,16);
            if (
$a+$b>255
            {
                
$out =    $a $b 256 $zaem//bilo: $a - $b + 256 - $zaem;
                
$zaem 1;
            } else 
            {
            
$out $a $b $zaem//bilo: $a - $b - $zaem;
            
$zaem 0// ne bilo :)
            
}
            return 
sprintf("%X"$out);
        }
    } 
Сразу скажу, что вижу, что не пройдет обработка суммы чисел, вида FF + FF - т.е. "один в уме" в самом первом элементе массива - у меня такого не будет.
 
Ответить с цитированием

  #15102  
Старый 09.03.2010, 14:59
гаррет-тень
Познающий
Регистрация: 21.12.2009
Сообщений: 34
Провел на форуме:
124940

Репутация: 1
По умолчанию

if ($cp == 1) {subdomain = ;"} что неправильно в этой строке?
 
Ответить с цитированием

  #15103  
Старый 09.03.2010, 15:02
Fepsis
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
Провел на форуме:
6962560

Репутация: 536


По умолчанию

if ($cp == 1) {$subdomain = '';}
 
Ответить с цитированием

  #15104  
Старый 09.03.2010, 15:05
гаррет-тень
Познающий
Регистрация: 21.12.2009
Сообщений: 34
Провел на форуме:
124940

Репутация: 1
По умолчанию

не понял
 
Ответить с цитированием

  #15105  
Старый 09.03.2010, 15:21
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

budden в условии должно быть if ($a+$b+$zaem > 255). И лучше использовать значащие переменные, то есть $zaem назвать $overflow, например
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
 
Ответить с цитированием

  #15106  
Старый 09.03.2010, 15:25
wildshaman
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме:
12942062

Репутация: 1550


Отправить сообщение для wildshaman с помощью ICQ
По умолчанию

Цитата:
Сообщение от гаррет-тень  
if ($cp == 1) {subdomain = ;"} что неправильно в этой строке?
Переменные начинаются с $
; ставится в конце сроки
Ставятся либо две двойных кавычки, либо две одинарных
Тобишь правильно
$subdomain = "";
 
Ответить с цитированием

  #15107  
Старый 09.03.2010, 15:27
гаррет-тень
Познающий
Регистрация: 21.12.2009
Сообщений: 34
Провел на форуме:
124940

Репутация: 1
По умолчанию

спасибо) про переменную незаметил, не внимательно( недавно учить начал...
 
Ответить с цитированием

  #15108  
Старый 09.03.2010, 15:29
budden
Участник форума
Регистрация: 26.07.2008
Сообщений: 267
Провел на форуме:
1343031

Репутация: 184
По умолчанию

Цитата:
Сообщение от Gifts  
budden в условии должно быть if ($a+$b+$zaem > 255). И лучше использовать значащие переменные, то есть $zaem назвать $overflow, например
Точно, большое спасибо.
 
Ответить с цитированием

  #15109  
Старый 09.03.2010, 15:32
гаррет-тень
Познающий
Регистрация: 21.12.2009
Сообщений: 34
Провел на форуме:
124940

Репутация: 1
По умолчанию

а в таком setcookie('passwd', $_POST['passwd'], time()+(30*24*3600),
 
Ответить с цитированием

  #15110  
Старый 09.03.2010, 16:00
b3
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме:
1698585

Репутация: 818


Отправить сообщение для b3 с помощью ICQ
По умолчанию

Скачай редактор кода с подсветкой синтаксиса, увидиш где забываеш ковычки, скобки, как в этом случае:
PHP код:
setcookie('passwd'$_POST['passwd'], time()+(30*24*3600)) 
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Delphi, .NET, Asm 5420 17.06.2010 13:33
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ