欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Uint?和?int?的區(qū)別解析

 更新時間:2023年08月24日 10:04:38   作者:Upaaui  
Int與Uint的區(qū)別在于帶符號與不帶符號,在計算機中根據(jù)補碼進行互相轉(zhuǎn)換,很多語言是有方法支持的,但是也有一些并沒有轉(zhuǎn)換方法,比如SQLserver(SQLserver不支持Uint類型),下面詳細介紹Uint?和?int?的區(qū)別,感興趣的朋友一起看看吧

Uint 和 int 的區(qū)別

一、指代不同

1、uint:對應于無符號整數(shù)。

2、int:一種數(shù)據(jù)類型,在編程語言(C、C++、C#、Java等)中,是用于定義整數(shù)類型變量的標識符。

二、取值范圍不同

1、uint:取值范圍是 2^31 - 1,即:0~4294967295。

2、int:int占用4字節(jié),32比特,數(shù)據(jù)范圍為-2147483648~2147483647[-2^31~2^31-1]。

三、特點不同

1、uint:有無符號的根本原因就是因為數(shù)據(jù)出現(xiàn)了溢出現(xiàn)象導致的。無符號值可以避免誤存負數(shù), 且擴大了表示范圍。

2、int:除了int類型之外,還有short、long、long long類型可以表示整數(shù)。

補充:uint與int互轉(zhuǎn)

Int與Uint的區(qū)別在于帶符號與不帶符號,在計算機中根據(jù)補碼進行互相轉(zhuǎn)換,很多語言是有方法支持的,但是也有一些并沒有轉(zhuǎn)換方法,比如SQLserver(SQLserver不支持Uint類型),下面這個方法理論上可以運用于任何語言進行轉(zhuǎn)換。
SQLserver中并不存在uint,所以我們用bigint格式來接收轉(zhuǎn)換后的數(shù)據(jù)

int→uint如果為正數(shù):數(shù)據(jù)(正數(shù)不變)
如果為負數(shù):MaxInt-MinInt-(|數(shù)據(jù)|)+1 = 2147483647-(-2147483648)+(數(shù)據(jù))+1 = 4294967296+(數(shù)據(jù))
SQL代碼:

DECLARE @int INT =-1
SELECT CASE WHEN @int>=0 THEN @int ELSE 4294967296+@int END

JS代碼:

function int2uint(i) {
    if (i >= 0)
        return i;
    else
        4294967296 + i;
}

uint→int如果小于等于MaxInt:數(shù)據(jù)(不變)
如果大于MaxInt:(數(shù)據(jù))-MaxInt+MinInt-1=(數(shù)據(jù))-2147483647+(-2147483648)-1=(數(shù)據(jù))-4294967296
SQL代碼:

DECLARE @uint BIGINT=4294967295
SELECT CASE WHEN @uint<=2147483647 THEN @uint ELSE @uint-4294967296 End

JS代碼:

function uint2int(i) {
    if (i <= 2147483647)
        return i;
    else
        return i - 4294967296
}

到此這篇關于Uint 和 int 的區(qū)別的文章就介紹到這了,更多相關Uint 和 int 的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論