알파벳을 숫자로, 숫자를 알파벳으로


26

도전

이 도전에서는 숫자를 입력으로 받아 알파벳의 해당 문자를 출력해야하며 그 반대도 마찬가지입니다. (1 <=> A, 2 <=> B) 등

1 -> A
2 -> B
...
26 -> Z

A -> 1
B -> 2
...
Z -> 26

규칙

  • 이것은 이므로 바이트 단위의 가장 짧은 코드가 이깁니다.
  • 입력 만에서 대문자 중 구성됩니다 AZ또는 정수 126포함.
  • 후행 공백 (공백 및 줄 바꿈)이 허용됩니다.

1
왜 복제합니까? 같지 않다.
차드

3
프로그래밍 퍼즐과 코드 골프에 오신 것을 환영합니다! 이 도전은 약간의 설명을 사용할 수 있습니다. 예를 들어, 유효하지 않은 입력이 있기 때문에 처리해야 할 입력을 지정할 수 있습니다. 향후 도전 과제를 샌드 박스 에 게시하여 주요 사이트에 게시하기 전에 의미있는 피드백을 얻을 수있는 것이 좋습니다 .
Leaky Nun

1
우리는 받게됩니까 26정수 또는 "26"문자열로, 또는 두 가지 모두 사용할 수 있습니다?
Leaky Nun

2
대문자 여야합니까, 아니면 소문자로 허용됩니까?
Mego

1
또 다른 알파벳 도전? (͡ ° ͜ʖ ͡ °)
shooqie

답변:


6

실제로는 7 바이트

ú' +ûEí

온라인으로 사용해보십시오!

설명:

ú' +ûEí
ú' +     lowercase English alphabet, prepend space
    û    uppercase
     E   element (pushes the nth letter if input is an integer, leaves stack alone otherwise)
      í  index (pushes index of input if input is a string, leaves stack alone otherwise)

소문자가 허용되는 경우 6 바이트입니다.

ú' +Eí

온라인으로 사용해보십시오!


1
지금 당장 승리하고 있습니다. 아무도 7 바이트 미만의 프로그램을 수행 할 수 없습니다.
차드

1
나는 이것을 물어보기 위해 합류했다. @Mego 이것은 어떤 언어입니까?
접이식 크로 마틴

2
같은 @FoldedChromatin 외모 github.com/Mego/Seriously
알프레드 베츠

1
@FoldedChromatin 실제로는 Actually입니다. 따라서 Actually, 7 bytes. : P
Dan

2
이런 순간은 내가 선택한 언어에 대해 행복하게
해줍니다.

12

순수한 배쉬, 51

나머지 답변의 대부분은 일종의 조건부를 사용합니다. 이것은 조건을 완전히 배제하고 대신 입력을 적절하게 구성된 bash-brace-expansion 배열로 색인하는 base-36 숫자로 처리합니다.

a=(_ {A..I} {1..26} {J..Z} {A..Z})
echo ${a[36#$1]}

이데온


1
그래서 무엇을 #합니까?
R. Kap


9

얼랭, 26 바이트

f([X])->X-64;f(X)->[X+64].

Erlang의 문자열 동작이 유용한 몇 가지 시간 중 하나입니다.



7

파이썬 3, 43 바이트

lambda x:x!=str(x)and chr(64|x)or ord(x)^64

이 솔루션의 흥미로운 점은 OR, 비트 OR |, 논리 OR or, 비트 XOR ^및 논리 XOR의 모든 의미를 통합한다는 것입니다 !=.


6

2sable , 9 8 바이트

암호:

.bAu¹kr,

설명:

.b        # Convert 1 -> A, 2 -> B, etc.
  A       # Push the alphabet.
   u      # Convert it to uppercase.
    ¹k    # Find the index of the letter in the alphabet.
      r   # Reverse the stack.
       ,  # Pop and print with a newline.

CP-1252 인코딩을 사용합니다 . 온라인으로 사용해보십시오! .


1
을 삭제할 수 없습니까? 없는 바이트는 무엇입니까? 새 줄을 인쇄하지 않아도됩니다.
차드

@Chad Nope, 숫자 입력에는 작동하지 않습니다 :(
Adnan

6

루비, 47 39 + n플래그 = 40 바이트 33 34 31 바이트

익명의 기능. @KarlNapf의 Python 솔루션 과 같은 예외 처리 트릭을 사용합니다 .

@manatwork에서 -3 바이트

온라인으로 사용해보십시오

->i{(64+i).chr rescue i.ord-64}

n40 바이트 의 플래그가 있고 STDIN에서 읽는 원래의 전체 프로그램 버전 :

puts$_!~/\d/?$_.ord-64:(64+$_.to_i).chr

ideone 에서 실행할 때 구문 오류가 발생 합니다. 테스트하는 방법을 알려줄 수 있습니까?
Leibrug

@Leibrug 죄송합니다! 이제 수정되었습니다
Value Ink

당신은 뻔뻔하게 적용하여 그것을 더 줄일 수 있습니다 칼 Napf 그의에서의 트릭을 파이썬 솔루션 : ->i{(64+i).chr rescue i.ord-64}.
manatwork

5

체다, 34 32 바이트

@LeakyNun 덕분에 2 바이트 절약

n->"%s"%n==n?n.ord()-64:@"(n+64)

문자열 또는 숫자를 확인하는 더 짧은 방법이 있었으면 좋겠다.

온라인으로 사용해보십시오! 또는 테스트 스위트

설명

n ->                // func with arg `n`
    "%s"%n==n ?     // if n is string... (see below)
       n.ord() - 64  // return code point - 64
    :               // else...
    @"(n+64)         // chr(n+64)

"%s"%n==n간단한 방법으로 문자열인지 확인합니다. "%s"문자열 형식 입니다. %"a %s c" % "b"를 들어와 같은 형식을 지정할 수 있습니다 "a b c". %s문자열임을 지정합니다. 숫자가 전달되면로 유지됩니다 %s.


"%s"%n==n2 바이트를 절약
Leaky Nun

@LeakyNun 아, 똑똑해! 나는 노력하고 "%d"%n==n있지만 작동하지 않았다 : /
Downgoat

5

Mathematica 54 41 바이트

LegionMammal978에서 13 바이트를 절약하는 완전히 영리한 제안.

If[#>0,FromLetterNumber,,LetterNumber]@#&

If[#>0,FromLetterNumber,,LetterNumber]적용 여부 FromLetterNumber또는 LetterNumber입력 여부를 결정하는 유일한 목적을 제공합니다 .

#>0입력 #이 숫자 이면이 만족되고이 경우 FromLetterNumber선택됩니다.

그러나 문자 인 #>0경우 true 또는 false가 아니며 대신 선택됩니다.#LetterNumber


If[#>0,FromLetterNumber,,LetterNumber]@#&["d"]

4


If[#>0,FromLetterNumber,,LetterNumber]@#&[4]


매스 매 티카에서, FromLetterNumber그리고 LetterNumber다른 알파벳으로 작동합니다. 이것은 몇 바이트 만 더 필요합니다.

If[# > 0, FromLetterNumber, , LetterNumber][#, #2] &[4, "Greek"]
If[# > 0, FromLetterNumber, , LetterNumber][#, #2] &[4, "Russian"]
If[# > 0, FromLetterNumber, , LetterNumber][#, #2] &[4, "Romanian"]

δ
г
b

If[# > 0, FromLetterNumber, , LetterNumber][#, #2] &[δ, "Greek"]
If[# > 0, FromLetterNumber, , LetterNumber][#, #2] &[г, "Russian"]
If[# > 0, FromLetterNumber, , LetterNumber][#, #2] &[b, "Romanian"]

4
4
4


1
일부 골프는 41 바이트를 가져 왔습니다.If[#>0,FromLetterNumber,,LetterNumber]@#&
LegionMammal978

귀하의 제안을 다음과 같이 해석합니다 If[#>0,FromLetterNumber[#],LetterNumber@#]‌&. If[#>0,FromLetterNumber[#],LetterNumber@#]‌&[4]작동 하지만 If[#>0,FromLetterNumber[#],LetterNumber@#]‌&["c"]그렇지 않습니다. 분명히 해결할 수 없습니다 "c">0. 내가 오해 했습니까?
DavidC

이중 ,,은 의도적이며 외부도 마찬가지입니다 @#. If[# > 0, FromLetterNumber, Null, LetterNumber][#]&는 4 개의 인수 형식 If(찾아보기) 을 사용하는 로 평가됩니다 .
LegionMammal978

4 인수 형식의 If작동 방식이 놀랍습니다 .
DavidC

4

하스켈, 54 바이트

f s|s<"A"=[['@'..]!!read s]|1<2=show$fromEnum(s!!0)-64

사용 예 : map f ["1","26","A","Z"]-> ["A","Z","1","26"].

하스켈의 엄격한 타입 시스템은 여기서 진짜 고통입니다. 또한 모든 짧은 문자 <-> 같은 INT 기능 chr그리고 ord내가 손으로 할 필요가 있으므로, 가져 오기가 필요합니다. 문자-> int 경우, 예를 들어 String-> Char(via !!0)-> Integer(via fromEnum)-> String(via show) 로 변환해야합니다 .


4

C, 55 바이트

i;f(char*s){i=atol(s);printf(i?"%c":"%d",64^(i?i:*s));}

4

펄 6 , 25 바이트

{+$_??chr $_+64!!.ord-64}

설명:

# bare block lambda with implicit parameter of 「$_」
{
    +$_         # is the input numeric
  ??
    chr $_ + 64 # if it is add 64 and get the character
  !!
    $_.ord - 64 # otherwise get the ordinal and subtract 64
}

예:

say ('A'..'Z').map: {+$_??chr $_+64!!.ord-64}
# (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26)

say (1..26).map: {+$_??chr $_+64!!.ord-64}
# (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z)

2
구문이 너무 다르더라도 Perl 5에서 동일한 메커니즘은 동일한 바이트 수입니다. perl -pe '$_=/\d/?chr$_+64:-64+ord'!
Dom Hastings

3

C #, 32 바이트

n=>(n^=64)>26?(object)(char)n:n;

에 캐스팅합니다 Func<int, object>.

입력 : char암시 적으로 변환 int하므로 int(1-26) 또는 char( 'A'-Z') 로 호출 할 수 있습니다 .

출력 : a char또는 int.


3

PHP, 49 41 40 바이트

<?=+($i=$argv[1])?chr($i+64):ord($i)-64;

나는 올바른 대안이 없다고 생각 is_numeric합니까?

이것은 커맨드 라인에서 실행됩니다 ( $argv[1]첫 번째 변수입니다)

덕분에 :

@insertusername 여기 : 골프 8 바이트. 교체 is_numeric($i=$argv[1])0<($i=$argv[1]).This하기 때문에 작동합니다 (int)"randomLetter" == 0.

@manatwork : 1 바이트로 줄어 듭니다. 교체 0<와 함께 +. 이 경우에 발생하는 + 신호는 "Z"(또는 모든 문자)를 0으로 변환합니다. 이는 잘못된 결과입니다. 따라서 모든 문자는 항상 거짓이며 숫자는 항상 참입니다.


2
0<($i=$argv[1])대신에를 사용 is_numeric($i=$argv[1])하면 8 바이트 가 절약 됩니다 .
insertusername 여기에

1
그 아이디어를 계속하십시오 : 0<+.
manatwork

2

파이썬 2, 61 바이트

i=raw_input()
try:o=chr(int(i)+64)
except:o=ord(i)-64
print o

예, 파이썬 3으로 전환 할 수 있습니다. input


사용 input()그럼에도 불구하고 변화 int(i)i.
Leaky Nun

그런 다음 문자 입력이 작동하지 않습니다.
Karl Napf

2
입력 :"A"
Leaky Nun

3
절름발이입니다. A혹은 아무것도 아닌.
Karl Napf

함수로 수정하여 몇 바이트를 줄일 수 있습니다 : line 1 : def f(i):, line 2 : <space> try:o=chr(i+64), line 3 <space> 그렇지 않으면 변경되지 않음, line 4 : <space> return o 이 형식에서는 파이썬 2에서 작동합니다. 또는 Python 3
cdlane

2

PowerShell v2 +, 42 바이트

param($n)([char](64+$n),(+$n-64))[$n-ge65]

입력 $n(정수 또는 명시 적 문자)을 취하고 의사 삼항을 사용하여 배열의 두 요소 중에서 선택합니다. 조건부 $n-ge65(즉, 입력 ASCII A이상)입니다. 그렇다면 입력을 int로 캐스트하고 빼십시오 64. 그렇지 않으면, 우리 64는 입력 정수에 더하고 그것을로 캐스팅합니다 [char]. 두 경우 모두 결과는 파이프 라인에 남고 인쇄는 암시 적입니다.

PS C:\Tools\Scripts\golfing> ([char[]](65..90)|%{.\alphabet-to-number.ps1 $_})-join','
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26

PS C:\Tools\Scripts\golfing> (1..26|%{.\alphabet-to-number.ps1 $_})-join','
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z

2

Befunge-98 *, 19 바이트

&:39*\`'@\j;+,@;-.@

질문에 당신이 a 1-26또는 a를받을 것이라고 말했기 때문에 A-Z이것은 26 또는 문자 AZ를 의미한다고 가정합니다. 대부분의 해석은 대체 코드를 입력하는 데 어려움을 겪기 때문에 &26과 26 또는 90과 'Z'와 같은 값 을 사용 하고 입력 하는 것이 더 쉽습니다 ~.

의사 코드

int c = get stdin
push the value of 27
bool is_number =  27 > c
push the value of `@` (64)
if is_number == 1
   jump to adding 64 to c //putting it the ASCII range
   print as ASCII
   end
else
   jump to subtracting 64 from c //putting it in the numerical range
   print as number
   end

여기 에서 (Windows에서) 테스트 하십시오!

* 이것은 기술적으로 Unefunge-98입니다. 1 차원 만 사용하기 때문에 그 이름은 생소 할 수 있습니다.


2

Befunge 93 , 144 90 66 54 36 19 바이트

이것이 허용되는지 100 % 확실하지는 않지만 A를 65로, B를 66으로 입력 할 수 있다면 (나의 편의를 위해) :

&:"@"`"@"\#. #-_+,@

그렇지 않으면 36 바이트에서 :

~:0\"A"-`#v_88*-.@
**~28*++,@>68*-52

(제안을 위해 tngreene에게 감사합니다!)

~:0\567+*-`#v_88*-.>$28*+,@
52**\28*++,@>~:0`!#^_\68*-

(재 배열하여 12 바이트를 절약 한 Sp3000에 감사합니다!)

~:0\567+*-`#v_88*-.>$82*+,@
            >~:0`!#^_\68*-52**\28*++,@


v                   >$28*+,@
             >~:0`!#^_\68*-52**\28*++,@
>~:0\567+*-`#^_88*-.@


v                    >$28*+,@
~           >11g~:0`!|
1                    >\68*-52**\28*++,@
1
p           
>011g567+*-`|
            >11g88*-.@

언 골프 드 :

v                       >$ 28* + , @
                 >~:0 `!|
                        >\ 68* - 52* * \ 28* + + , @
>~:0\ 5 67+ * - `|
                 >88* - . @

이것은 처음으로 작동하는 Befunge 프로그램이며, 더 골프를 칠 필요가 있다고 생각합니다. 도움을 주시면 감사하겠습니다.

Befunge 코드는 여기에서 테스트 할 수 있습니다 .


1
한눈에보기 : Befunge가 줄 바꿈되므로 두 번째 줄의 마지막 12 52**\28*++,@>~:0`!#^_\68*-
자를

@ Sp3000, 오, 나는 그것을 알아 차리지 못했습니다. 감사!
Daniel

첫 번째 프로그램을 축하합니다! 고려해야 할 한 가지는 문자열에서 ASCII 값을 밀어서 많은 수를 생성하는 것입니다. 비교 567+*"A". 또한 값을 반복적으로 작성하는 대신 값을 재사용하기위한 지침 gp지침을 잊지 마십시오 . 또한 IP를 지점으로 가져 오는 입력을 찾을 수 없습니다 >$ 28* + , @. 이것은 무엇입니까? 꼭 필요한가요?
tngreene

마지막으로 "26"또는 "08"구문 분석에 대한 귀하의 헌신에 감탄합니다. 내가 읽은 것처럼 당신의 방법은 ( '2'에서 2로 '2'로) 많은 기호 <-> 숫자 변환 수학을 포함합니다. 입력을 비교하기 전에 첫 번째와 두 번째 입력을 숫자로 사용하면 수행중인 ASCII 산술 양이 줄어들 수 있습니다. 또는 입력을 기호로 효율적으로 처리하는 방법이있을 수 있으며 ( '2'에서와 같이 '2') 숫자로 변환 할 필요가 없습니다!
tngreene

@tngreene, 정수 입력 <10은 분기로 이동하고 $28*+,@> = 10은 다른 입력으로 이동합니다. 이것은 내가 아는 한 입력을 두 번 이상 읽을 수 없기 때문에 궁극적으로 수행되었습니다.
Daniel

2

Brainfuck, 445 자

골프 코드보다 개념 증명이 더 많습니다. 서명되지 않은 랩핑되지 않는 Brainfuck이 필요합니다.

,[>+>+<<-]>[<+>-]>>++[->++++++<]>[-<<<+++++>>>]<<<<[->-<]>[,<++++[->------------<]++++[->>------------<<][-<<++++++++++>>]>[-<+>]>[-<<++++++++++>>]>++[->++++++<]>+[-<+++++>]<-[-<<<+>>>]<<<.>]>[[-<+<+>>]>++[->++++++<]>+[-<+++++>]<-[-<<->>]<<[->+>+<<]>>>++++++++++<+[>[->+>+<<]>[-<<-[>]>>>[<[-<->]<[>]>>[[-]>>+<]>-<]<<]>>>+<<[-<<+>>]<<<]>>>>>[-<<<<<+>>>>>]<<<<<-[->+>+<<]>[-<++++++++++>]<[-<->]++++[-<++++++++++++>]++++[->>++++++++++++<<]>>.<<<.>]

주석으로

,[>+>+<<-] Firstly Duplicate it across two buffers
>[<+>-] Move the second buffer back to the first buffer
>>++[->++++++<]>[-<<<+++++>>>] Establish 60 in the second buffer
<<<<
Compare Buffers 1 and 2
[->-<]
>
[ If there's still data in buffer 2
, Write the value in the units column to buffer two
<
++++
[->------------<] Subtract 12 from the units buffer
++++
[->>------------<<] Subtract 12 from the tens buffer
[-<<++++++++++>>] Multiply buffer three by ten into buffer 1
>
[-<+>] Add the units
>
[-<<++++++++++>>] Add the tens
>++ Add 65 to the buffer
[->++++++<]>+
[-<+++++>]
<- Actually we need 64 because A is 1
[-<<<+>>>] Add 64 to the first buffer
<<<
. Print the new letter
> Move to blank buffer
]
>
[ Otherwise we're a letter
[-<+<+>>] Copy it back over the first two buffers
>++ Write 64 to the buffer
[->++++++<]>+
[-<+++++>]
<-
[-<<->>] Subtract 64 from the letter
<<[->+>+<<]
>>>++++++++++< Copy pasted Division step x = current buffer y = 10 rest of the buffers are conveniently blank

+
[>[->+>+<<]>[-<<-[>]>>>[<[-<->]<[>]>>[[-]>>+<]>-<]<<]>>>+<<[-<<+>>]<<<]>>>>>[-<<<<<+>>>>>]<<<<<
-
[->+>+<<]
>[-<++++++++++>]
<[-<->]
++++
[-<++++++++++++>]
++++
[->>++++++++++++<<]
>>.<<<.>
] 

2

자바, 104 98 97 83 54 53 51 50 30 바이트

x->(x^=64)>64?(char)x+"":x+"";

테스트 프로그램 :

IntFunction<String> f = x -> (x ^= 64) > 64 ? (char) x + "" : x + "";
out.println(f.apply('A')); // 1
out.println(f.apply('Z')); // 26
out.println((f.apply(1))); // A
out.println((f.apply(26))); //Z

1
다음과 같이 삼항 연산자를 사용하여 약 20 바이트를 삭제할 수 있습니다.return(s.matches("\\d+")?(char)(Integer.parseInt(s)+64)+"":(s.charAt(0)-64)+"");
yitzih

int로 캐스팅을 제거하여 7 바이트를 줄일 수 있습니다.
user902383

프로그램은 입력을받지 않습니다. 프로그램은 출력을 제공하지 않습니다. 프로그램도 없습니다!
Nicolas Barbulesco

@NicolasBarbulesco 달리 명시되지 않는 한 전체 프로그램을 작성할 필요는 없습니다.
Shaun Wild


1

R, 73 바이트

f=function(x){L=LETTERS;if(is.numeric(x)){i=L[(x)]}else{i=which(L==x)};i}

필요없고 f=, 클라우드는이 ifelse함수를 사용하여 일부 바이트를 골프 아웃 하려고 시도 합니다!
프레데릭


1

파이썬 3, 49 48 53 50 바이트

어떻게 든 바이트 수가 잘못되었습니다 ._; 고마워요 dahuglenny

isalpha 보다 짧다 isnumeric

lambda x:x.isalpha()and ord(x)-64or chr(int(x)+64)

문자 또는 숫자가 될 수있는 문자열로 입력을받습니다.


1
당신은 사이의 공간을 제거 할 수 있습니다 x.isnumeric()else한 바이트를 저장합니다.
acrolith

1

자바, 61 바이트

int f(char c){return c^64;}char f(int i){return(char)(i^64);}

Ungolf'd :

int f(char c) {
    return c^64;
}

char f(int i) {
    return (char) (i^64);
}

호출 f('A')은 첫 번째 함수를 호출하고 1을 재조정합니다 int. 호출 f(1)하면 두 번째 함수가 호출되고 char"A"가 반환 됩니다.


`숫자를 입력으로 받아 알파벳의 해당 문자를 출력해야하며 그 반대도 마찬가지입니다. (1 <=> A, 2 <=> B) 등. 나는 일련의 기능이 이것에 적합하다고 생각하지 않습니다.
Shaun Wild

1
@SeanBean 함수 과부하입니다.
NoOneIsHere 여기

1
입력이 필요하지 않습니다. 출력이 없습니다. 프로그램이 없습니다!
Nicolas Barbulesco

입력이 "A".. "Z"또는 "0".. "9"라고 가정해야합니다. 문자열은 입력이 무엇인지 알 수없는 유일한 기본 요소이므로 함수는 문자열 인수를 기대해야합니다.
RobIII

1

자바 스크립트 86 77 66 60 바이트

i=>typeof i<'s'?String.fromCharCode(i+64):i.charCodeAt(0)-64
  • 화살표 기능 사용에 대한 주석 후 7 바이트 저장
  • @manatwork가 지적한대로 리턴 / 괄호를 제거하여 다른 11 바이트를 저장
  • @manatwork 덕분에 6 바이트를 더 절약했습니다.

1
화살표 기능 사용
대머리 Bantha

@BaldBantha 환호, 그것을 변경 :-)
Dylan Meeus

return진술 할 필요가 없습니다 : i=>typeof i=='number'?String.fromCharCode(i+64):i.charCodeAt(0)-64.
manatwork

@manatwork 건배!
Dylan Meeus

1
작업 설명에 따르면 typeof입력은 "숫자"또는 "문자열"일 수 있습니다. 따라서 확인할 필요가 없습니다 =='number'.<'s' 또한 그것을 할 것입니다.
manatwork

1

ASM : 10 바이트

3C 40 77 04 2C 40 EB 02 04 40

설명 : 요청 된 내용을 정확하게 수행하는 프로그램을 조합하여 표현한 것입니다. 지시어가 필요하기 때문에 완벽하게 작동하지는 않지만 어셈블리 프로그램의 코드 세그먼트에 추가되면 작동합니다. AL 레지스터에서 입력을 수신하고 문자이면 ASCII 코드 값에서 40h를 빼고 숫자 만 남겨 둡니다 (예 : B = 42h, 42h-40h = 2h). 입력이 숫자이면 40h를 더하여 반대 절차를 수행합니다. 결과는 AL 레지스터에 남습니다. 아래는 어셈블리 소스 코드입니다

cmp al,40h
ja letter_to_number
sub al,40h
jmp continue
letter_to_number: add ax,40h
continue:

또한 다른 모든 답변을 기계 코드로 변환하면 내 것이 가장 작을 것입니다.


몇 가지 문제가 있다고 생각 77 02 2C합니다 77 **04** 2C. sub과는 add거꾸로입니다.
ceilingcat

위의 수정 사항을 적용하고 x86_64 시스템의 C 프로그램에서 호출 할 수있는 "기능"을 작성했습니다. #define F(x) ((int(*)(int))"\x89\xf8\x3c\x40\x76\4\x2c\x40\xeb\2\4\x40\xc3")(x)
ceilingcat

이것은 어떤 유형의 어셈블리입니까?
mbomb007

Turbo Assembler
6a75616e



1

Japt , 11 바이트

;BbU Ī´UgB

시도 해봐

;BbU Ī´UgB     :Implicit input of integer or string U
;B              :Uppercase alphabet
  bU            :0-based index of U (-1 if not found)
     Ä          :Add 1
      ª         :Logical OR with
       ´U       :Decrement U
         gB     :Index into the uppercase alphabet
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.