sitelink1  
sitelink2  
sitelink3 http://1 
sitelink4 http://ko 
sitelink5 http://blog.daum.net/kiki1/9884186 
sitelink6 http://sitelink1 

Java에서 CRC체크를 하기 위한 모듈입니다...

Java에는 java.util.zip에 속에 있는 클래스를 사용하면 32bit CRC체크를 할수 있습니다..

그러나 16bit CRC체크를 할려면.... 없죠 ^^a

그것을 체크하기 위한 프로그램 모듈 입니다.


public final class CRCCheck   

{   

        private final static int crc16Tab[] = { /* CRC polynomial 0xA001 */  

                        0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241,   

                        0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440,   

                        0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40,   

                        0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841,   

                        0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40,   

                        0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41,   

                        0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641,   

                        0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040,   

                        0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240,   

                        0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441,   

                        0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41,   

                        0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840,   

                        0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41,   

                        0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40,   

                        0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640,   

                        0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041,   

                        0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240,   

                        0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441,   

                        0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41,   

                        0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840,   

                        0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41,   

                        0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40,   

                        0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640,   

                        0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041,   

                        0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241,   

                        0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440,   

                        0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40,   

                        0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841,   

                        0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40,   

                        0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41,   

                        0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641,   

                        0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040,   

                };   

  

        public static int crc16_Bigendian(byte[] bufIn, int charCount )   

        {   

                int crc16 = crc16Check(bufIn, charCount);   

  

                return ((crc16 << 8) & 0xFF00) | ((crc16 >> 8) & 0x00FF);   

    }   

  

  

    public static int crc16(byte[] bufIn, int charCount)   

    {   

        return crc16Check(bufIn, charCount);   

    }   

  

  

    private static int crc16Check(byte[] bufIn, int charCount)   

    {   

        int crc16;   

  

        int i = 0;   

  

        for(crc16 = 0; charCount > 0; charCount--)   

        {   

            crc16 = crc16Tab[(crc16 ^ bufIn[i++]) & 0xff] ^ (crc16 >> 0x0008);   

        }   

  

        return crc16;   

    }   

번호 제목 글쓴이 날짜 조회 수
34 [ChatGPT] File.delete() 함수로 파일 삭제가 되지 않는 경우 황제낙엽 2024.12.10 266
33 File 클래스 정리 황제낙엽 2019.07.29 437
32 파일 사이즈를 반환하는 유틸 함수 황제낙엽 2019.07.29 481
31 BufferedReader, BufferedWriter를 활용한 빠른 입출력 황제낙엽 2019.07.29 448
30 File.length() 에 대하여 황제낙엽 2019.03.24 523
29 File.delete() 와 File.deleteOnExit() 황제낙엽 2019.03.24 2602
28 메일서버(daum.net)에 POP3를 이용하여 메일 가져오기 예제 file 황제낙엽 2018.10.09 1325
27 org.apache.commons.io.FilenameUtils (getExtension) 황제낙엽 2018.04.01 1507
26 File 을 다루기 위한 유틸 클래스 file 황제낙엽 2018.02.28 425
25 HttpsURLConnection 을 사용한 SSL서버 접속 file 황제낙엽 2017.08.02 533
24 HttpURLConnection 사용 샘플( JSP , SERVLET ) 황제낙엽 2017.08.01 696
23 HttpURLConnection 사용하기 황제낙엽 2017.08.01 793
22 [HttpURLConnection] POST로 파라미터 넘기기 황제낙엽 2017.08.01 872
21 HttpURLConnection POST 방식 사용하기 황제낙엽 2017.08.01 798
20 servlet 에서의 json 한글처리 황제낙엽 2013.04.23 1854
19 com.oreilly.servlet.multipart 를 이용한 파일 업로드 file 황제낙엽 2013.03.19 443
18 Jar파일에 포함된 리소스 접근하는 방법(How to read a resource from a JAR file ) file 황제낙엽 2012.06.24 475
» 16비트 CRC 체크용 클래스 (사용자 클래스) 황제낙엽 2010.03.14 646
16 파일을 읽어서 CRC 값을 연산하는 메서드 (java.util.zip.CRC32) 황제낙엽 2010.03.14 449
15 byte배열에 대한 CRC 를 계산하는 메서드 (java.util.zip.CRC32) 황제낙엽 2010.03.14 2445