1. 程式人生 > >C/C++如何得到int型最大值

C/C++如何得到int型最大值

在C/C++中,如何得到int型能表示的最大值,最小值?

第一種方法:

在limits.h/climits中,定義了INT_MAX,INT_MIN,可以直接使用

第二種方法:
如果要通過程式得到,比較簡單的一種方法是靠操作記憶體中的二進位制位了,具體需要了解數值在記憶體中的表示,牽涉到資料的原碼、反碼、補碼。

可以 #define MAX_INT    (((unsigned int)(-1))>>1)

        #define  MIN_INT    MAX_INT+1           //在使用的時候需要將其賦給一個有符號整形變數才行,然後使用那個變數,直接作為一個值使用是不對的,

原理的話知道了記憶體中資料的表示自然就很容易理解了。

第三種方法:

可以定義一個無符號整數數 unsigned int zero = 0;

                                                 int max_int = ~zero/2;

在記憶體中0XFFFFFFFF表示為有符號數為-1

               0X10000000表示為有符號數為INT_MIN

相關推薦

C/C++如何得到int

在C/C++中,如何得到int型能表示的最大值,最小值? 第一種方法: 在limits.h/climits中,定義了INT_MAX,INT_MIN,可以直接使用 第二種方法: 如果要通過程式得到,比較簡單的一種方法是靠操作記憶體中的二進位制位了,具體需要了解數值在記憶體中的

C語言中,int

1. 有符號數:          分析:計算機中有符號整數是用補碼錶示的。          對於有符號的n位二進位制數的其取值範圍為:最小值:-2^(n-1);  最大值:2^(n-1) -1; 2.無符號數: 對於無符號的n位二進位制數的其取值範圍為:     最小

編寫C#程序,計算去除之後的平均值

pub ole eric efault lis ner .get ast c# 有10位評委對跳水運動員做評分,編寫C#程序,計算去除最大得分和最小得分之後的平均得分 作為運動員的跳水成績。 interface IMark using System.Collections

C++求兩個數的

eof sizeof ios int sig turn c++ a + b -a //不使用if,:?等推斷語句。求兩個數字中最大的那個數字。 #include<iostream> using namespace std; int main(

C語言編寫一個輸出的程式

void main(){int a,b,c,max;scanf("%d%d%d",&a,&b,&c); if(a>b)max=a;elsemax=b; if(c>max)max=c;printf("max is %d",max);getch

C#---計算兩個數的

                                  計算兩個數的最大值題目要求:輸入兩個數,並比較兩個數的大小。輸出兩個數的最大值。程式碼實現:using System; using System.Collections.Generic; using Syst

向賀老師學C語言—求三數

【專案2-三數最大值】 1.專案要求: 輸入3個整數,輸出其中的最大值。 提示:求出兩數的大值,再求這個大值與第三數間的大值,為三數最大值 2.分析: 定義三個整數變數,進行隨機輸入; 設定一箇中間變數,最為比較最大值的結果; 前兩個先比,得到最

C語言 n個數中

int main(){    int n,a,max,i;    scanf("%d",&n);    scanf("%d",&max);    for(i=1;i<n;i++)    {        scanf("%d",&a);        if(a>max)max

C#——求若干數的和平均值

/* (程式頭部註釋開始)* 程式的版權和版本宣告部分* Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved.* 檔名稱:編寫一個控制檯應用。輸入一組整數,輸出最大值、最小值和平均值。 * 作 者: 李莉* 完成日期

為什麼Java中的float大於long

文章目錄 問題:float是32位,long是64位,為什麼float表示的範圍比long大呢? 參考 問題:float是32位,long是64位,為什麼float表示的範圍比long大呢? 原因: 原因是,float與lo

java int Integer.MAX_VALUE

java int 類整數的最大值是 2 的 31 次方 - 1 = 2147483648 - 1 = 2147483647 可以用 Integer.MAX_VALUE 表示它 Integer.MAX_VALUE + 1 = Integer.MIN_VALUE = -214

程式設計中無窮大的設定 很多人可能設為0x7fffffff,這個數的確是32-bit int,符號位為0,其他的都是1 但在很多情況下,0x7fffffff會出現錯誤,比如溢位,這樣兩個無窮大數相

很多人可能設為0x7fffffff,這個數的確是32-bit int的最大值,符號位為0,其他的都是1 但在很多情況下,0x7fffffff會出現錯誤,比如溢位,這樣兩個無窮大數相加會變成負數,還有如在做dijkstra求最短路時,當做鬆弛操作,判斷if (d[u]+w

Java中為什麼float大於long

最為一個常識,我們都知道浮點型在記憶體中佔用的是4個位元組的空間,而long型佔用的是8個位元組的空間。可是為什麼4個位元組的float型的最大值會大於long型的最大值呢?        我們都知道,float型別的範圍是:一3.403E38~3.403E38。而lo

c++ 關於如何獲取int

  之前有一個題,因為求最小值時minn初始賦值不夠大,導致一直沒過,卡了很久。 之後我就發憤圖強學了這方面的內容:   int型的最大值是0x7fffffff, 可以算一下 0x7FFFFFFF 是多少 每個十六進位制數4bit,因此8位16進位制是4個位元組,剛好是一

C++之bool型別,名稱空間的練習——使用一個函式找出一個整陣列中的

#include<iostream> using namespace std; int findMaxOrMin(int * n,int number) { int temp=n[0]; bool isMax; cin>>isMax; for(int i=1;

C#中int、long、float、double、decimal

最近在將java上寫的一個簡單的表示式求值計算器移植到Windows Phone 8,java中double的精度問題是很明顯的,解決辦法是改用BigDecimal類。所以覺得C#中用double也是不太好的。 C#中用作精度計算的一個數據型別是decimal,對應的類是D

C# int、long、double、char等各種內建資料型別的位元組數、

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2 { class Program

C++中生成int型別的方法

如何在C++中生成int型別的最大值和最小值?32位有符號整型,第一位是符號位,所以最大整數是 0111 1111 1111 1111 1111 1111 1111 1111 ,   2^32 - 1 ,  2147483647最小整數是 1000 0000 0000 0000 0000 0000 0000

C#編程入門--求數組

mar static span int color turn [] return cnblogs 工具類如下: public class ArrayHelper { #region Double數組最大值 ///

【劍指offer】滑動窗口的C++實現

AD png lock -a https 大小 idt style 可能 原創博文,轉載請註明出處! # 題目 # 思路 利用C++中的雙端隊列保存有可能是滑動窗口最大值的下標,其中隊首元素保存當前窗口最大值的下標。當滑動窗口改變時,更新隊列。隊列更新的規則: