ช่วงของรหัสของ NSCII ( Natnuphoe Standard Code for Information Interchange ) มีดังนี้
9..0A..Zz..a
หมายความว่าในระบบของ NSCII
9 + 1 จะได้เป็น 8
8 + 2 จะได้เป็น 6
9 - 1 จะได้เป็น a
A + 1 จะได้เป็น B
Z + 1 จะได้เป็น z
z + 1 จะได้เป็น y
วิธีการเข้ารหัสแบบ Natnuphe มีดังนี้
บวกด้วย 1..26 เข้ากับแต่ละหลักของข้อมูล ทำซ้ำไปเรื่อยๆตามลำดับจนครบทุกตัว
เช่น
ตัวอักษรที่ 1 บวกกับ 1 ตัวอักษรที่ 2 บวกกับ 2 ...
ตัวอักษรที่ 27 จะบวกกับ 1 ตัวอักษรตัวที่ 28 จะบวกกับ 2 ...
ตัวอักษรที่ 53 ก็บวกด้วย 1 ... ทำไปเรื่อยๆจนครบทุกตัว
ทีนี้ก็มาลองเขียนโปรแกรมกันดูนะครับ ท่านใดที่มีโคดที่ทำงานเร็วกว่านี้ก็โพสได้นะครับ
public class NSCII { public static void main(String[] args) { //โจทย์ String str_nscii = "7818354194C4FEAE57304ABADC2C437C068190EEC" + "8A5BD9AC8B4634D95E97307991BECB4D6456D01DA" + "D848301495F0EA0DEE07203418A72583E5DD79D66" + "965ED2F20C4826F9FABDB206537363642DD656194"; //ค่าของรหัส nscii ทั้งหมด String all_nscii ="9876543210ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "zyxwvutsrqponmlkjihgfedcba"; String result_nscii = ""; int num_plus = 1; for(int i=0;i< str_nscii.length();i++){ int index = all_nscii.indexOf(str_nscii.charAt(i)); if(num_plus==27) num_plus=1; int int_nscii=index+num_plus; result_nscii = result_nscii+""+all_nscii.charAt(int_nscii); num_plus++; } System.out.println(result_nscii); } }
เป็นไงครับใช้วิธีการหา index ของตำแหน่งที่ตรงกันและบวกเพิ่มตำแหน่งของ nscii ไปเรื่อยๆ
ลองเข้าไปเล่นดูได้นะครับที่ลิงค์ด้านล่าง
http://try2hack.siamdev.net/
Credit SiamDev.net
ไม่รู้เรื่องเลย
ตอบลบ