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 的区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • VS CODE 使用SVN插件的方法步骤

    VS CODE 使用SVN插件的方法步骤

    这篇文章主要介绍了VS CODE 使用SVN插件的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 使用git命令上传代码

    使用git命令上传代码

    这篇文章介绍了使用git命令上传代码的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • Flyway数据库版本控制的教程详解

    Flyway数据库版本控制的教程详解

    这篇文章主要介绍了Flyway数据库版本控制的教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2015-07-07
  • ollama搭建本地ai大模型并应用调用的操作方法

    ollama搭建本地ai大模型并应用调用的操作方法

    这篇文章详细介绍了如何下载、安装和使用OLLAMA大模型,包括启动配置模型、配置UI界面、搭建本地知识库、配置文件开发、环境变量配置以及通过Golang实现接口调用的示例
    2024-11-11
  • Atlassian系列产品及插件激活方法[JIRA8.19.0+]

    Atlassian系列产品及插件激活方法[JIRA8.19.0+]

    Atlassian家有很多产品,都真的非常好用。比如公司使用JIRA做项目管理,使用Confluence做文档、知识管理等(我个人用它来做笔记)。本文给大家分享Atlassian系列产品及插件激活方法[JIRA8.19.0+],感兴趣的朋友参考下吧
    2021-12-12
  • v语言初体验小结

    v语言初体验小结

    这篇文章主要介绍了v语言初体验小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • bs架构和cs架构的区别_动力节点Java学院整理

    bs架构和cs架构的区别_动力节点Java学院整理

    这篇文章主要介绍了bs架构和cs架构的区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 将本地项目添加到git管理

    将本地项目添加到git管理

    这篇文章介绍了将本地项目添加到git管理的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Matlab使用Plot函数实现数据动态显示方法总结

    Matlab使用Plot函数实现数据动态显示方法总结

    这篇文章主要介绍了Matlab使用Plot函数实现数据动态显示方法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • ClaudeCode中的Agent系统工作原理、如何使用和自定义开发

    ClaudeCode中的Agent系统工作原理、如何使用和自定义开发

    本文介绍了ClaudeCode中的Agent系统,包括其工作原理、内置Agent的使用方法、如何创建自定义Agent以及优秀的Agent框架BMAD-Method,通过使用Agent,可以提高开发效率,提升专业知识,并促进团队协作
    2026-03-03

最新评论