Uint?和?int?的区别解析
(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun)
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 的区别内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!
相关文章
最新WebStorm2020.2注册码永久激活(激活到2089年)
JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。今天给大家带来的是将WebStorm最新版激活至2089年2020-09-09浅谈vscode中task.json和launch.json的关系
本文主要介绍了浅谈vscode中task.json和launch.json的关系,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-08-08Atlassian系列产品及插件激活方法[JIRA8.19.0+]
Atlassian家有很多产品,都真的非常好用。比如公司使用JIRA做项目管理,使用Confluence做文档、知识管理等(我个人用它来做笔记)。本文给大家分享Atlassian系列产品及插件激活方法[JIRA8.19.0+],感兴趣的朋友参考下吧2021-12-12
最新评论