「サロゲートペア上位だよ」は、((utf16char & 0xFC00) == 0xD800)「サロゲートペア下位だよ」は、((utf16char & 0xFC00) == 0xDC00)
上位は、(utf16char & 0x03FF) << 10;下位は、(utf16char & 0x03FF);
で、UTF-32に戻すには、上位 | 下位 | 0x10000でおk><
意味がわかると十分にエレガント><
思考の /dev/null