Uint 和 int 的区别解析

 更新时间:2023年08月24日 10:04:38   作者:Upaaui  
Int与Uint的区别在于带符号与不带符号,在计算机中根据补码进行互相转换,很多语言是有方法支持的,但是也有一些并没有转换方法,比如SQLserver(SQLserver不支持Uint类型),下面详细介绍Uint 和 int 的区别,感兴趣的朋友一起看看吧

Uint 和 int 的区别

一、指代不同

1、uint:对应于无符号整数。

2、int:一种数据类型,在编程语言(C、C++、C#、Java等)中,是用于定义整数类型变量的标识符。

二、取值范围不同

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

2、int:int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]。

三、特点不同

1、uint:有无符号的根本原因就是因为数据出现了溢出现象导致的。无符号值可以避免误存负数, 且扩大了表示范围。

2、int:除了int类型之外,还有short、long、long long类型可以表示整数。

补充:uint与int互转

Int与Uint的区别在于带符号与不带符号,在计算机中根据补码进行互相转换,很多语言是有方法支持的,但是也有一些并没有转换方法,比如SQLserver(SQLserver不支持Uint类型),下面这个方法理论上可以运用于任何语言进行转换。
SQLserver中并不存在uint,所以我们用bigint格式来接收转换后的数据

int→uint如果为正数:数据(正数不变)
如果为负数:MaxInt-MinInt-(|数据|)+1 = 2147483647-(-2147483648)+(数据)+1 = 4294967296+(数据)
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:数据(不变)
如果大于MaxInt:(数据)-MaxInt+MinInt-1=(数据)-2147483647+(-2147483648)-1=(数据)-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 的区别的文章就介绍到这了,更多相关Uint 和 int 的区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • github pull最新代码实现方法

    github pull最新代码实现方法

    本文主要介绍 github pull最新代码的资料,这里对 github pull最新代码做了详细流程介绍,有需要的小伙伴可以参考下
    2016-09-09
  • Xshell 6安装和使用教程详解

    Xshell 6安装和使用教程详解

    这篇文章主要介绍了Xshell 6安装和使用教程,Xshell 6支持Windows 平台远程协议Telnet、Rlogin、SSH1/SSH2 PKCS#11、SFTP、Serial,本文给大家讲解的非常详细需要的朋友可以参考下
    2022-11-11
  • Notepad++文本比较插件Compare详解(最新免费)

    Notepad++文本比较插件Compare详解(最新免费)

    Notepad++是一款强大的文本编辑器,它提供了文件对比功能,可以帮助我们快速找出两个文件之间的差异点,这篇文章主要介绍了Notepad++文本比较插件Compare详解(最新免费),感兴趣的朋友一起看看吧
    2024-01-01
  • Prometheus配置解析小结

    Prometheus配置解析小结

    本文主要介绍了Prometheus配置解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05
  • VScode中配置使用fortran的方法

    VScode中配置使用fortran的方法

    这篇文章主要介绍了VScode中配置使用fortran的方法,本文通过图文实例代码相结合给大家介绍的非常详细,需要的朋友可以参考下
    2021-07-07
  • 网站搜索框使用微信扫码功能

    网站搜索框使用微信扫码功能

    客户要求可以直接识别标签二维码对某些仪器设备进行管理,类似于淘宝搜索框可以直接拍照搜索商品一样。接下来通过本文给大家分享网站搜索框使用微信扫码功能,需要的朋友可以参考下
    2019-08-08
  • 总结一些你可能不知道的ip地址

    总结一些你可能不知道的ip地址

    IP对大家来说应该再熟悉不过了,但其实IP地址有一些不为人知的事情,可能你并不知道。例如短IP、不同进制的ip等,所以下面这篇文章主要给大家总结介绍了一些你可能不知道的ip地址知识,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07
  • Vscode ChatGPT插件使用(无需代理注册)

    Vscode ChatGPT插件使用(无需代理注册)

    本文主要介绍了Vscode ChatGPT插件使用(无需代理注册),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 比较经典技术普及帖 以你刚才在淘宝上买了一件东西

    比较经典技术普及帖 以你刚才在淘宝上买了一件东西

    你发现快要过年了,于是想给你的女朋友买一件毛衣,你打开了taobao。这时你的浏览器首先查询DNS服务器,将taobao转换成ip地址
    2012-06-06
  • unicode utf-8 gb18030 gb2312 gbk各种编码对比

    unicode utf-8 gb18030 gb2312 gbk各种编码对比

    在修改一个cms的过程当中遇到一个php截取字符串的函数(当然得兼容中英字符了),因为对各种编码的字符范围和字符表示不清楚,感觉一头迷雾,虽然可以直接来调用这个函数
    2009-05-05

最新评论