PowerShell Core, 130 bytes
($b=[Convert]::ToString(+"$args",2)|% t*y)|%{$c=$b[-++$i]if($i%2){$e="$c$e"}else{$o="$c$o"}}$e,$o|%{[Convert]::ToInt16("0$_",2)}
Takes an integer and returns two shorts
($b=[Convert]::ToString(+"$args",2)|% t*y)|%{$c=$b[-++$i]if($i%2){$e="$c$e"}else{$o="$c$o"}}$e,$o|%{[Convert]::ToInt16("0$_",2)}
Takes an integer and returns two shorts