2010-03-07 9 views
1

파이썬을 모르며 라이브러리를 C#으로 이식하고 있는데 일부 I/O 작업에서 사용되는 다음 코드 줄이 있습니다. 내 추측으로는 16 진수라는 것입니다.하지만 왜 문자열 안에 있는지, 백 슬래시는 무엇을하는지 알지 못합니다.16 진수로 파이썬

sep1 = '\x04H\xfe\x13' # record separator 
    sep2 = '\x00\xdd\x01\x0fT\x02\x00\x00\x01' # record separator 

답변

0

백 슬래시는 이스케이프 문자입니다. 문자열 안에 특수 문자 (IE 따옴표)를 삽입 할 수 있습니다. \ xNN은 16 진수입니다.

그들이 배열 대신 문자열을 사용하고있는 것처럼 보입니다. 나는 왜 누군가가이 일을 할 지 잘 모르겠다. 그러나 오 잘.

나는 C#에 익숙하지 않다. 그러나 C에서 sep1은 char[] {0x04H, 0xfe, 0x13}과 유사하다. (끝이 0 인 경우는 null이다. 종료 된 문자열)

5

이스케이프 시퀀스입니다. 파이썬에서 (non-raw) 문자열 내의 \xNN0xNN 문자로 처리됩니다.

+0

답장을 보내 주셔서 감사합니다. – ryudice

0

대부분의 언어에서 동일한 이스케이프 시퀀스가 ​​작동합니다. C#에서 이중 따옴표 (")로 올바른 문자열 따옴표를 사용해야 할 것입니다.

0

다른 사람들은 US ASCII 문자로는 표현할 수없는 이스케이프 된 문자를 명시했기 때문에이 작업을 수행하는 이유는 무엇입니까? 다음?

입출력 장치가 바이트 기본 유형을 지원하지 않습니다. 어떤 이유로

일부 언어를이 특별한 16 진수 값으로 바이트 시퀀스를 필요로하고 우리는 문제가 있습니다. 어떻게 우리가 쓸 수 및 변수에 넣을 수 없을 때 일련의 바이트를 보냅니 까?

언어 C는 문자 a를 사용합니다. 대신에 해당 바이트를 저장하는 문자 스트링. 그래서 당신은 가지고있는 문자열이 아닙니다. 대신 바이트 시퀀스로 생각하면됩니다 (문자열에 저장 됨).

"문자열"은 다른 문자를 보낼 수있는 것처럼 I/O 장치로 전송할 수 있으며 일반적으로 같은 종류의 기능 (쓰기, 쓰기, 인쇄, 인쇄)이 가능합니다. ..)

관련 문제