Kiểu dữ liệu lớn nhất bên C/C++ là gì?

Chào mọi người ạ theo mình biết thì bên pascal kiểu dữ liệu có giá trị lớn nhất là extended nhưng mình mới chuyển qua C++.Theo mình biết bên C++ là long long nhưng nó không đáp ứng đc nhu cầu vậy bên C hoặc C++ kiểu dữ liệu lớn nhất là gì
Thanks

Có int128_t nhưng nó không chuẩn

1 Like

https://www.freepascal.org/docs-html/ref/refsu5.html
gg thấy kiểu extended là kiểu số thực mà sao lại so sánh với long long là kiểu số nguyên?? C và C++ có long double tương ứng với kiểu extended này. Tương ứng là tương ứng nếu OS ko có kiểu số thực 80-bit thì nó fallback về double 64-bit.

4 Likes

quan trọng nhất là cần để làm gì
bản thân những gì có sẵn không đáp ứng được nhu cầu thì tự viết code để xử lý thôi, mục đích của việc học code là như thế, chứ cái gì cũng có sẵn thì người ta học cấu trúc dữ liệu, giải thuật làm chi nữa

1 Like

C/C++ mà dùng chip giá thành rẻ thì người ta hay cắt số ra lưu vào vài biến lúc cần dùng thì ghép vào đó b :v xuống đến bộ nhớ nó cũng thành 0 với 1 hết ấy mà :v

1 Like

Kiểu giá trị lớn nhất mà bạn cần dùng để làm gì ?? Thuờng thì tuỳ vào kiểu kiến trúc mà hệ điều hành cấp phát vùng nhớ khác nhau …Mình nhớ k nhầm thì kiến trúc 32 bit ,số nguyên sẽ cấp 2 byte, còn kiến trúc 64bit thì 4 byte ! Nhưng bạn có thể lưu 1 hằng số nguyên với nhiều hơn 4 byte đối với kiến trúc 64bit thì phải .>Quan trọng là trình biên dịch phải biết xử lý 1 số nguyên có hơn 4 byte ra làm sao …hoặc chúng ta phải tự viết lấy 1 cái mà dùng nếu k có…
Cái này k phải chuyên ngành của mình nên k biết có đúng k ?? Hi vọng đuợc các bro giải thích

2 Likes

trong sách lớp 11 ghi 10^-4932 đến 10^4932 bạn mình giả toán mà có bài ghi max la 10^64 nhung ben c++ không biết là kiểu gì á bạn

mình mới lớp 11 thôi bạn không cao siêu đến thế chỉ là viết chương trình tính toán max là 10^64 mà không biết sài kiểu dữ liệu gì

Bạn đăng đầy đủ đề lên đây xem nào.

3 Likes

có lẽ họ ghi nhầm, max 2^64 :weary: xài long long thôi

1 Like


bài này cấp trường thôi nên chưa khó mấy mình chỉ đến 10^4 hết cỡ ko nổi 10^15 nếu bạn có ý tưởng để max giới hạn thì giúp mình thanks

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	int n,i;
    int a[100]={ 0,1 };
   // int a[1]=0;
	cout<<"nhap so n";cin>>n;
	for(i=2;i<=n+1;i++)
	{
			a[i]=2*a[i-1]-a[i-2]+1;
		
	}
	int x=(a[n+1]-a[n])*(a[n+1]-a[n]);
	cout<<x;
	return 0;
}

bài mình code đây bạn xem thử nha

Trước khi đâm đầu vào làm một cách ngây thơ thì bạn thử biến đổi một chút đã nào.

\begin{matrix} & a_{n+1} - a_n = (2a_n - a_{n-1} + 1) - a_n = a_n - a_{n-1} + 1\\ \Rightarrow & a_{n+1} - a_n = a_n - a_{n-1} + 1 = a_{n-1} - a_{n-2} + 2 = \dotso = a_1 - a_0 + n = n+1\\ \Rightarrow & X = (a_{n+1} - a_{n}) = (n+1)^2 \end{matrix}

Ta cũng dễ dàng suy ra được a_{n} = 1 + 2 + \dotso + n.

Đó, đáp số rất đơn giản mà bạn for từ 1 đến n, rõ ràng là mệt mà lại lãng phí công sức, đúng không nào?

2 Likes

thanks bạn đã chỉ mình cần học hỏi thêm

nhưng 10^-15 thì làm ntn bạn mình dùng unsigned long long vẫn ko chạy đc

à mình đã giải đc bài toán này rồi cảm ơn bạn đã chỉ hihii

đề hỏi chữ số cuối cùng của X thôi mà đâu cần tính hết các chữ số đâu :V

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?