前言:
在16位環境下,int/unsigned int 佔16位,long/unsigned long佔32位
在32位環境下,int佔32位,unsigned int佔16位,long/unsigned long佔32位
何時需要使用:
long 和 int 範圍是[-2^31,2^31),即-2147483648~2147483647,而unsigned範圍是[0,2^32),即0~4294967295,所以常規的32位整數只能夠處理40億左右,當遇到比40億大的多的數就要用到64位。
64位使用範圍:
不同的編譯器對64位整數的擴充套件有所不同,vc使用__int64/unsigned __int64,範圍是[-2^63, 2^63)和[0,2^64),即-9223372036854775808~9223372036854775807與 0~18446744073709551615(約1800億億)。
注意點:
1、編譯器不同導致使用64位的申明方式不同;
2、long long / unsigned long long 一般是linux下申明方式、如:g++
3、__int64 /unsigned __int64一般是windows下使用64位的申明方式,如:vs
4、在賦值時需要注意加上ll進行顯式賦值;
5、當進行64位與 32位的混合運算時,32位整數會被隱式轉換成64位整數。
6、輸出printf("");,long long使用%lld輸出,__int64使用%i64d,無符號使用u替代d即可。
7、測試下來編譯器一般都支援2種操作,不必太過糾結,怎麼使用看個人喜歡。
//******************************===華麗的分隔線****************************************
#include
#include
intmain()
附網友測試結果:
剛實驗了下,在vc6、dev、codeblocks中c語言都可以使用__int64,格式化輸出標識為%i64d。不過在vc6中數字後加2個l是會報錯,可以只加1個或不加。查了下資料,__int64是windows專用的,被vc、gcc等編譯器支援,但在在unix、linux中需用long long配合%lld。後者是標準c的規定!
我試了下long long配合%i64d,可以正確輸出,而不管是long long還是__int64配合%lld都不能正確輸出。所以我得出的結論是在windows下需要用longlong或,__int64配合%64d。而在unix、linux中必須使用標準c規定的long long配合%lld。
記。
Long Long int64使用總結
前言 在16位環境下,int unsigned int 佔16位,long unsigned long佔32位 在32位環境下,int佔32位,unsigned int佔16位,long unsigned long佔32位 何時需要使用 long 和 int 範圍是 2 31,2 31 即 2147...
64位mysql使用教程
解壓後,配置環境變數 path中新增 d program files mysql mysql 5.7.17 winx64 bin 在啟動mysql 之前我們要做個處理 5.7版本在解壓後是沒有data這個資料夾的,不要手動建立乙個空的data資料夾,而是進入cmd,輸入mysqld initiali...
centos6 4安裝使用wine
分類 centos 2013 07 17 15 52 75人閱讀收藏 舉報 rpm ivh epel release 6 8.noarch.rpm rpm import etc pki rpm gpg rpm gpg key epel 6 yum makecache yum install wine...