Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2016, 20:50   #1
Глобинус
Новичок
Джуниор
 
Регистрация: 20.01.2016
Сообщений: 7
По умолчанию Побитовые операции

Встретился мне такой код на JAVA
[SPOILER]
PHP код:
int ageheightweightcombinedmask;
age 28//00011100
height 185//10111001
weight 80//01010000
combined = (age) | (height << 8) | (weight << 16); //00000000 01010000 10111001 00011100

mask 0b11111111;

System.out.printf("Age: %d, height: %d, weight: %d"
        
mask combined
        
mask combined >>> 8
        
mask combined >>> 16);
//Age: 28, height: 185, weight: 80 
[/SPOILER]


Я его тут же перевёл на php но результаты совсем не - те. Можете подсказать ? уже полтора часа сижу

Результат будут - Age: 1052944, height: 4113, weight: 16
А должно Age: 28, height: 185, weight: 80

PHP код:
$age 28//00011100
$height 185//10111001
$weight 80//01010000
$combined = ($age) | ($height << 8) | ($weight << 16); //00000000 01010000 10111001 00011100

$mask 0x0b11111111;

print_rsprintf('Age: %d, height: %d, weight: %d',
        
$mask $combined,
        
$mask $combined >> 8,
        
$mask $combined >> 16) );

//Age: 28, height: 185, weight: 80 

Последний раз редактировалось Глобинус; 20.01.2016 в 22:22.
Глобинус вне форума Ответить с цитированием
Старый 20.01.2016, 23:18   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

Код:
>>> 16
3 Карл!...не?
ADSoft на форуме Ответить с цитированием
Старый 21.01.2016, 01:10   #3
Глобинус
Новичок
Джуниор
 
Регистрация: 20.01.2016
Сообщений: 7
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Код:
>>> 16
3 Карл!...не?
в PHP нету >>> а вот в java беззнаковый сдвиг вправо это три >>>

Ошибка - syntax error, unexpected '>'
при использование >>>

Последний раз редактировалось Глобинус; 21.01.2016 в 01:27.
Глобинус вне форума Ответить с цитированием
Старый 21.01.2016, 02:23   #4
Глобинус
Новичок
Джуниор
 
Регистрация: 20.01.2016
Сообщений: 7
По умолчанию

Вообщем я нашёл компилятор java онлайн и сделал так
System.out.println(0b11111111);

оказалось что не 47530971409 АА 255 LOL
Глобинус вне форума Ответить с цитированием
Старый 21.01.2016, 13:55   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Потому что в Java, как в PHP, запись 0b11 означает двоичное число.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
побитовые операции СанекКенас Паскаль, Turbo Pascal, PascalABC.NET 1 21.05.2015 07:47
Побитовые операции С++ Ilai Помощь студентам 1 17.05.2015 03:38
Си.Побитовые операции Alina111 Visual C++ 6 24.06.2012 20:53
побитовые операции serega28 Паскаль, Turbo Pascal, PascalABC.NET 11 25.01.2011 14:02
Побитовые операции WinterLord Общие вопросы C/C++ 1 12.10.2008 22:39