Foundation
Every HP RPN user should know about the x⇋y key already. It’s as close to foundational as you could ask, going clear back to the HP-35. My collection doesn’t go back nearly that far, but this function is present on nearly every HP calculator I have.
Exceptions
These exceptions make for interesting case studies:
pure algebraics: My HP-20S has no stack to speak of, only the two-value
INPUTsystem, and so one may assume it has little need for anx⇋ykey, but it does have a left-shiftedSWAPkey aboveINPUT.HP 50g: No visible “swap” button at all, adding shame beyond what it earns from that famously misplaced and undersized
ENTERbutton. The function is present, but as an unlabeled feature of the right arrow button, when pressed in the stack view while not actively inputting or editing a value. One wonders how this is ever discovered short of reading the manual. Prior experience with machines where it is labeled, perhaps? Poking around blindly? By this sign and others, we know this calculator has no RPN soul. 😢HP-48GX: Identical behavior, but labeled as
SWAP, confusingly: it’s in purple on my late-generation unit, implying that it needs left-shift to be pressed first, but it works regardless. Between this and a properly placed and sizedENTERkey, this machine has RPN-fu, but secondary to its primary missions of graphing and RPL programming.HP-28S:
SWAPis a shifted function of the backspace key, which makes little sense; that space is more commonly assigned to some type ofCLEARfunction. What makes it doubly odd is that the 28C/S is most famous for having roughly twice as many keys as any later RPL-series machine. Could they not have found a more useful place to put it?
On these RPL machines, HP could have labeled the function 1⇋2 to be more consistent with their legacy devices, since it swaps the first and second stack locations. One can but speculate why they chose the vague SWAP label instead.
RPN
Every non-RPL HP calculator I have here has a top-level x⇋y key, which we typically find necessary in any case where we are facing a need to make a two-argument function call where the order matters — subtraction, division, exponentiation… — but where our chosen order of intermediate calculations produced the values in the “wrong” order. It is often possible to proceed without the swap and recover after, but it may lose precision, as with ÷ 1/𝑥 where you end up dividing twice as compared with the more RPN-ish x⇋y then divide.
R47
All of this brings me to the SwissMicros R47, which not only has an x⇋y button placed right next to its properly sized and placed ENTER key, it also offers these soft menu functions:
x⇋: swap x with any of y, z, t, or a previously-defined variable.y⇋: swap y with … ditto …z⇋: swap z with … ditto …t⇋: swap t with … ditto …R⇋R: swap rows in a matrixRe⇋Im: swap the real and imaginary parts of a complex number⇋: “shuffle” the registers in accord with a given pattern; passingtzyxflips the four on-screen stack registers top-for-bottom.
(You may now wish to return to my R47 article index.)
License
This work is © 2025-2026 by Warren Young and is licensed under CC BY-NC-SA 4.0