64 비트 Linux 컴퓨터의 메모리 레지스터를 파이썬에서 가상 주소를 사용하여 읽습니다. 그러나 각 레지스터에서 내 출력은 예를 들어, 긴 값 (물론)이다 282584257676671파이썬에서 레지스터에서 char 배열로 길이가 변환
나는 일반적으로 PC 아키텍처에 대해 조금 혼란 스러워요 나는 몇 가지 질문이 있습니다
- 왜이 오래있다가 값 15 위치 (16이 아님)
- 32 비트 아키텍처의 long 값에는 7 개의 위치가 있습니까?
- Linux 메모리 페이지 (4kb)는 (4096/64) = 64 레지스터의 풀입니까?
- Linux 메모리 페이지에도 주소가 있습니까?
- 가장 중요한 : 어떻게이 긴 코드를 파이썬의 문자열로 변환 할 수 있습니까?이 문자열은 얼마나 오래 사용할 수 있습니까?
고맙습니다!
편집 :
그게 C에서 할 수있는 일 :
unsigned char dest[4];
unsigned long int l;
dest[0] = l & 0xFF;
dest[1] = (l >> 8) & 0xFF;
dest[2] = (l >> 16) & 0xFF;
dest[3] = (l >> 24) & 0xFF;
은 어떻게 파이썬에서이 작업을 수행 할 수 있습니다 내 문자 배열은 또한 64 비트 아치 4의 크기를해야합니다? 또는 8?
힌트 : 숫자의 십진수 표현의 자릿수는 비트 수를 나타내지는 않습니다. 귀하의 예는 적어도 51 비트가 아니라 15 비트입니다. – Kevin