2011-08-02 2 views
3

임의의 n에 대해 n 비트 정수 유형을 지원하는 프로그래밍 언어가 있습니까? 즉,이 그들에 임의 정밀도의 정수와 언어가 있다면 물어와 같은 아니라는 것을 나는임의이지만 고정 된 정밀도를 가진 프로그래밍 언어?

int[137 bits] n = 0; 

주의 효과에 뭔가를 쓸 수있는 언어가있다. 나는 특정 고정 된 정밀도를 위해 고정밀 정수를 가질 수있는 무언가를 특별히 찾고 있습니다.

+0

대부분의 동적 언어는 무한 정밀도의 정수/합리적인 산술 패키지를 제공합니다 : LISP, Python, Mathematica, ... 오랫동안 사용 된 대부분의 언어는 서브 루틴 패키지를 통해 이러한 기능을 제공합니다. –

+0

C++은 (그리고 Stroustrup에 의해 표현 된 C++ 디자인 이상으로 판단 할 때) 템플릿 라이브러리로 이것을 지원할 수 있으며 특수 인스턴스에 대해 내장 유형을 쉽게 사용할 수 있습니다 –

답변

2

Verilog은 이것을 reg [136:0] n으로 표현합니다. HDL (Hardware Description Language)은 모두 비슷한 기능을 제공합니다. Verilog를 스크립팅 언어로도 사용할 수 있습니다.하지만 실제로 디자인 센터가 아니며 일반 프로그래밍 언어로 BigInt 스타일 정수를 사용할 수있는 성능을 제공하지는 않습니다.

0

Ada compilers 정수 선언의 크기를 상한 및 하한으로 지정할 수 있습니다. 나는 그들이 그러한 임의의 정수를 받아들이는지, 아니면 그러한 코드를 생성 할 지 모른다. 정확하게 생성하기 어려운 코드는 아닙니다. 다중 정밀도 추가는 고정 폭의 "add carry"명령어를 곱한 상태에서 쉽게 수행 할 수 있으며 라이브러리에 대한 서브 루틴 호출이 성능에 눈에 띄게 영향을주지 않도록 충분히 느리게 곱셈/나눗셈을 수행합니다.

-1

나는 알고 있습니다. bigIntegers를 프리미티브로 지원하는 몇 가지가 있지만 명시 적으로 요구하지 않았습니다. 문제는 대부분의 플랫폼이 비트 주소 지정이 가능하지 않다고 생각됩니다. n 바이트 정수를 구현할 수있는 클래스를 작성할 수 있다고 생각하지만 원시적이지는 않습니다. 응용 프로그램을 알고 싶다면 ...

0

Ada를 사용하면 "임의"작은 값에 대한 요구 사항을 구현하는 데 사용할 수있는 Integer 범위로 형식을 선언 할 수 있습니다.

COBOL은 임의 정밀도 기본 -10 숫자를 지원합니다.

원했던 Java BigInteger (또는 비슷한) 용 래퍼 클래스를 만드는 것은 간단합니다. 예 : 산술 연산 결과를 잘라내거나 사용자 정의 "오버플로"예외를 던졌습니다.