Stack Overflow на русском Asked by Sanlover on February 3, 2021
Догадываюсь, что провернуть данную операцию возможно с помощью побитового сдвига, но как – не совсем понимаю. Буду очень признателен, если найду ответ.
Пример того, как это должно работать в моём представлении.
std::pair<long,unsigned long> detach(const long long& _Value) {
long high = _Value << 32;
unsigned long low = _Value << 32;
return std::pair<long,unsigned long>(high,low);
}
При распространенном варианте - long long - 64 бита, long - 32 -
std::pair<long,unsigned long> detach(const long long& _Value) {
long high = _Value >> 32;
unsigned long low = _Value &0xFFFFFFFF;
return std::pair<long,unsigned long>(high,low);
}
Варианты могут быть и другие, но это вряд ли - потому что, например, при равенстве long и long long по размеру сложно говорить о старшей и младшей части, правда? :)
Но в общем случае можно воспользоваться оператором sizeof()
. Только как именно поступать в том или ином случае - это уже другой вопрос...
Answered by Harry on February 3, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP