[[Tableofcontents]] == Z3A2 == Z3A2은 텍스트 엔코딩 형식이며 2008년 8월 [부들]에 의해 만들어졌으며 관련된 프로그램은 GPL저작권에 따릅니다. attachment:Z3A2:z3a2_mascot.png * 관련엔코딩 : H3Z2 * 관련언어 : 빛깔언어 - [Bitggal] Language == Z3A2 엔코딩 형식 == === 기본원리 === Z3A2는 H3Z2 와 유사한 엔코딩 체계로 1byte 또는 2byte 값을 2개,3개의 알파벳으로 변환시켜줍니다.Z3A2 1byte 와 2byte 를 구분하기 위해서 총 65792( 256 + 65536 )개의 코드를 사용합니다. 즉 대상 문자열 또는 바이너리를 2byte 와 1byte 단위로 분리하여 처리할 수 있습니다. 따라서 홀수 길이의 마지막 NULL값 1바이트 까지 처리할 수 있게 됩니다. ( H3Z2의 경우 직접지정 해야 ) 알파벳 2문자와 3문자로 65792개의 조합을 만들 수 있는 경우는 다음과 같이 여러가지 경우가 있습니다. {{{ 65536 + 256 = 24*52*52 + 28*32 = 29*47*48 + 23*16 = 35*36*52 + 17*16 = 35*39*48 + 17*16 = 36*38*48 + 16*8 = 40*38*43 + 12*36 = 40*40*41 + 12*16 = 41*37*43 + 11*51 = 44*31*48 + 8*40 = 51*30*43 + 1*2 }}} Z3A2는 제일 위의 ''' 24 * 52 * 52 + 28 * 32 ''' 식에 기인한 알파벳 조합을 사용합니다. * ''' 24 * 52 * 52 + 28 * 32 = 256 + 65536 = 65792 ''' * 정규표현식 : '''/ [ O - Z ] [ A - Z ] [ A - Z ] | [ A - N ] [ A - P ] /i''' 위 등식에서 24과 28의 합은 52로 알파벳의 대소문자합과 동일하므로 서로 중복되지 않게 조합할 수 있고 첫 알파벳 으로 3문자 조합과 2문자 조합인지를 판단할 수 있게 됩니다. ( [ A - N ] 와 [ O - Z ]는 겹치는 부분이 없어야 함. ) 각 자리의 알파벳은 다음 순서대로 증가값을 가지게 됩니다. * '''[ O - Z ]''' => {{{ "OoPpQqRrSsTtUuVvWwXxYyZz" }}} ; * '''[ A - N ]''' => {{{ "AaBbCcDdEeFfGgHhIiJjKkLlMmNn" }}} ; * '''[ A - Z ] , [ A - P ]''' => {{{ "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz" }}} ; 1byte 0값은 'AA'가 되며 2byte 65536 은 'zzz'으로 됩니다. Z3A2라는 명칭은 '''A2'''는 '''AA'''에 , '''Z3'''로 '''zzz'''에 대응하며 'AA'로 시작해서 'zzz'으로 끝나는 코드체계라는 의미를 내포합니다. * '''AA ~ dp''' : [ 1byte ] 0 ~ 256 * '''EA ~ zzz''' : [ 2byte ] 0 ~ 65536 H3Z2 와 Z3A2는 알파벳만을 사용하여 엔코딩하기 때문에 웹전송은 물론 다양한 응용이 가능합니다. 도메인명이나 파일명으로 사용하는 것이 가능하며 프로그램 소스파일에서 앞파벳 조합만으로 구성되야 할 토큰을 만들기 위해 사용할 수도 있습니다. === H3Z2 와 Z3A2의 차이 === H3Z2는 2byte단위로 처리하기 때문에 가장 마지막 NULL문자를 그대로 놔두거나 제거하게 됩니다. 따라서 문자열이 아닌 바이너리의 경우는 문제가 발생할 수 있습니다. Z3A2는 이와 같은 단점을 보완하여 1byte의 값과 2byte의 값을 분리하여 코드를 할당하도록 함으로써 문제를 해결합니다. 따라서 Z3A2는 바이너리 데이타에 보다 적합한 엔코딩 형식이라 할 수 있습니다. === Z3A2의 코드값 보기 === {{{#!HTML
| AA => 0 Aa => 1 AB => 2 Ab => 3 AC => 4 Ac => 5 AD => 6 Ad => 7 AE => 8 Ae => 9 AF => 10 Af => 11 AG => 12 Ag => 13 AH => 14 Ah => 15 AI => 16 Ai => 17 AJ => 18 Aj => 19 AK => 20 Ak => 21 AL => 22 Al => 23 AM => 24 Am => 25 AN => 26 An => 27 AO => 28 Ao => 29 AP => 30 Ap => 31 aA => 32 aa => 33 aB => 34 ab => 35 aC => 36 ac => 37 aD => 38 ad => 39 aE => 40 ae => 41 aF => 42 af => 43 aG => 44 ag => 45 aH => 46 ah => 47 aI => 48 ai => 49 | aJ => 50 aj => 51 aK => 52 ak => 53 aL => 54 al => 55 aM => 56 am => 57 aN => 58 an => 59 aO => 60 ao => 61 aP => 62 ap => 63 BA => 64 Ba => 65 BB => 66 Bb => 67 BC => 68 Bc => 69 BD => 70 Bd => 71 BE => 72 Be => 73 BF => 74 Bf => 75 BG => 76 Bg => 77 BH => 78 Bh => 79 BI => 80 Bi => 81 BJ => 82 Bj => 83 BK => 84 Bk => 85 BL => 86 Bl => 87 BM => 88 Bm => 89 BN => 90 Bn => 91 BO => 92 Bo => 93 BP => 94 . . . . . . . | NJ => 850 Nj => 851 NK => 852 Nk => 853 NL => 854 Nl => 855 NM => 856 Nm => 857 NN => 858 Nn => 859 NO => 860 No => 861 NP => 862 Np => 863 nA => 864 na => 865 nB => 866 nb => 867 nC => 868 nc => 869 nD => 870 nd => 871 nE => 872 ne => 873 nF => 874 nf => 875 nG => 876 ng => 877 nH => 878 nh => 879 nI => 880 ni => 881 nJ => 882 nj => 883 nK => 884 nk => 885 nL => 886 nl => 887 nM => 888 nm => 889 nN => 890 nn => 891 nO => 892 no => 893 nP => 894 np => 895 OAA => 896 OAa => 897 OAB => 898 OAb => 899 | OAC => 900 OAc => 901 OAD => 902 OAd => 903 OAE => 904 OAe => 905 OAF => 906 OAf => 907 OAG => 908 OAg => 909 OAH => 910 OAh => 911 OAI => 912 OAi => 913 . . . . . . . | . . . . . . . zZY => 65736 zZy => 65737 zZZ => 65738 zZz => 65739 zzA => 65740 zza => 65741 zzB => 65742 zzb => 65743 zzC => 65744 zzc => 65745 zzD => 65746 zzd => 65747 zzE => 65748 zze => 65749 | zzF => 65750 zzf => 65751 zzG => 65752 zzg => 65753 zzH => 65754 zzh => 65755 zzI => 65756 zzi => 65757 zzJ => 65758 zzj => 65759 zzK => 65760 zzk => 65761 zzL => 65762 zzl => 65763 zzM => 65764 zzm => 65765 zzN => 65766 zzn => 65767 zzO => 65768 zzo => 65769 zzP => 65770 zzp => 65771 zzQ => 65772 zzq => 65773 zzR => 65774 zzr => 65775 zzS => 65776 zzs => 65777 zzT => 65778 zzt => 65779 zzU => 65780 zzu => 65781 zzV => 65782 zzv => 65783 zzW => 65784 zzw => 65785 zzX => 65786 zzx => 65787 zzY => 65788 zzy => 65789 zzZ => 65790 zzz => 65791 |
"; print wordwrap( $sample_text , 80, "\n", 1 ); print "
";
print wordwrap( $Z3A2_CODE , 80, "
", 1 );
print "
"; print wordwrap( $re_sample_text , 80, "\n", 1 ); print "
,----, .--,-``-.
.' .`| / / '. ,---, ,----,
.' .' ;/ ../ ; ' .' \ .' .' \
,---, ' .'\ ``\ .`- ' / ; '. ,----,' |
| : ./ \___\/ \ :: : \ | : . ;
; | .' / \ : |: | /\ \ ; |.' /
`---' / ; / / / | : ' ;. :`----'/ ;
/ ; / \ \ \ | | ;/ \ \ / ; /
; / /--, ___ / : |' : | \ \ ,'; / /-,
/ / / .`| / /\ / :| | ' '--' / / /.`|
./__; : / ,,/ ',- .| : : ./__; :
| : .' \ ''\ ; | | ,' | : .'
; | .' \ \ .' `--'' ; | .'
`---' `--`-,,-' `---'
http://ascii.dtools.net/ 에서 그림
Z3A2OsePuWPuWPuWPuWpYYQBcQBcPVCQDUQBcQBCSXEQdaOsePuWPuWPuWQDUPuzPuWSwFPvQPVdPuWPVdPu
WPuWQDxPuWPuWpYYQBcpyePuWPuWPuWPuWPuWQBCQBcpyeOsePuWPuWpMPPuWQDUPuzPuWQGfQDUQfZP
uWPuWPuWPuWPVjPuWPuzQDUPuzPvAPuWPuWPuWpMPPuWQDUPuzoaMPuLpYYQBcpyepMIPuWPuWpMPPvA
SXEPvAQDUQbCPuWPuWPuzPVdqJUPuWPuWQDxPuWpYYQBcQBcpMOPuWPuWoBCPuLtNUPuWqgWPuWPuWQD
UPVdSmGSufSNlPVdPuWPvAPuWqHJPuWPVJPuWPuWPuWPvAtNUPuWPuWPVJQDUPuWoAvPuLqJUPuWtNUQ
DUPuzQfSPuWPuWPuWPuWPvAPuWPVJPuWqhQPuWPvQPuWSmnPuWSmGqJUPuWPuWQEOPuzQfSOsePuWQbC
QBcPuzPVdqJUPuWPuWPuWPuWQfSPuWPVdPuWPVdPvQqgWPuWPuzQdhPuWqgWQbCQBcpMoPVdqJUOsePu
WPuWPVdqJUPuWPVdPuWPuWPuWPuWSmGPuWPvAPuWPvAPvQtNUPuWQGfPuWPvAPuWPvAPVdqJUPuWoApP
uLPuWPVjQfSPuWQBdpyePuWPuWSufPvbPVdPuWPVJPuWpNCPuWPVJtNUSmGPuWPvApMOPVjQfSPuWQBd
oAOPuLQfSPuWPVdQfSQDUtOAPuWQfSPuWQfSPvAPuWPVdPuWtnHPuWPvQpMIPuWQazpMoQfSPuWPVdQf
SSwFoBCQDJSUhqjzPuWPuWPuWqgWPuWPVdpyEPVdpMIQBCPuWPuWtnBPuWPVJqgWPuWPuWQDUSUhqjzP
uWPuWPuWoAVtNJPuWqgWPuWPuWQDUPuzPuWPvApMlPvAPuWPuWPuWqJUtNUPuWPvQpMOPuWPuWtNUPuW
qgWPuWPuWpMPOsePVjPuWPvQQDUPuzPuWPuWPuWPvAPuWPvAPuWPuWpMPPuWQbCpMoPuzPuWPuWPuWPV
jPuWPvQpMPOseQbCQBcPuzPuWPuWPuWPuWPuWSWYQBcQbCpyEpMoPuWPuWPuWPuWPuWPuWPuWPuWQbCQ
BcoAlOzXspXTuAqhKQfzTrssTnQEeTUSTIhTrYTFDTUsPVdvbzWfAWnSwgrPWROse
복구 텍스트
,----, .--,-``-.
.' .`| / / '. ,---, ,----,
.' .' ;/ ../ ; ' .' \ .' .' \
,---, ' .'\ ``\ .`- ' / ; '. ,----,' |
| : ./ \___\/ \ :: : \ | : . ;
; | .' / \ : |: | /\ \ ; |.' /
`---' / ; / / / | : ' ;. :`----'/ ;
/ ; / \ \ \ | | ;/ \ \ / ; /
; / /--, ___ / : |' : | \ \ ,'; / /-,
/ / / .`| / /\ / :| | ' '--' / / /.`|
./__; : / ,,/ ',- .| : : ./__; :
| : .' \ ''\ ; | | ,' | : .'
; | .' \ \ .' `--'' ; | .'
`---' `--`-,,-' `---'
http://ascii.dtools.net/ 에서 그림