C#中int short Int16 Int32 Int64区别
Java中没有Int32,Int64,,java中只有int,short,long
Java中int就代表Int32 ,short就代表Int16,long就代表Int64
首先,几个基本的关键字:
Int16 = short, 占2个字节. -32768 ~ 32767
Int32 = int, 占4个字节. -2147483648 ~ 2147483647
Int64 = long, 占8个字节. -9223372036854775808 ~ 9223372036854775807
这样, 看起来比short,int,long更加直观些
MSDN中说int就是Int32的别名,是等价的,short,long同理也是别名
详解Int32
为什么Int32 就等于 int, 很简单,在VS中写 int a=1; 选中a , F12转到定义就是System.Int32.
Int32就是代表一共能存储2^32次方,一共有42,9496,7296个数
从-21,4748,3648 到 +21,4748,3647 为止,为什么正数比负数小一个数,因为0占了一个数
所以Int32的最大数并不是42,9496,7296,而是(2^31)-1=+21,4748,3647,为什么是31次方,因为是有符号整型,最高位要空出来判断是不是负数,所以是31次方,-1是因为0占了一个数。
但是一共还是能存储2^32次方 既42,9496,7296个数,因为有正负数,其实一样的,还是2的32次方个数
如图:
所以Int16和Int64也是同理的。只不过是把2^32换成2^16或者2^64而已....
无符号整形Uint32
上面说的都是有符号整数,既signed integer, 就是可以储存正负数的,而无符号整数就是只能存储正数,既unsigned integer
在C#中用Uint16,UInt32,Uint64等表示
跟上面同理
ushort =UInt16
uint =UInt32 ,0 ~ 4364967295
ulong =UInt64
UInt32和Int32一样 ,也是代表一共能存储2^32次方,一共有42,9496,7296个数
但是因为只有正数和0,所以最大值为4364967295, 既2^32-1,-1是因为0占了一个数
溢出会如何
更进一步,尝试Int32 a=Int32.MaxValue+1 , 会不会报错?
答案是不会,至少在VS中不会,编译器会自动把a赋值成-21,4748,3648,既最小数值,若加2,则为-21,4748,3647,依次递加。。。
同理,UInt32 a=UInt32.MaxValue+1 ,a就是0,既,若+2,a=1,依次递加。。。
https://www.cnblogs.com/EEEE1/p/8098876.html
https://www.cnblogs.com/raytheweak/p/7290617.html
C#中int short Int16 Int32 Int64区别的更多相关文章
- C#程序中从数据库取数据时需注意数据类型之间的对应,int16\int32\int64
private void btn2_Click(object sender, RoutedEventArgs e) { using (SqlConnection ...
- C# 之 Int16 Int32 Int64 的区别
Int16 值类型表示值介于 -32768 到 +32767 之间的有符号整数. Int32 值类型表示值介于 -2,147,483,648 到 +2,147,483,647 之间的有符号整数. In ...
- Int16, Int32, Int64 范围
Int16, 等于short, 占2个字节. -32768 32767 Int32, 等于int, 占4个字节. -2147483648 2147483647 Int64, 等于long, 占8个字节 ...
- Int16 Int32 Int64
数据类型占多大空间 Int16, 等于short, 占2个字节. -32768 32767 Int32, 等于int, 占4个字节. -2147483648 2147483647 Int64, 等于l ...
- int16, int32, int64等类型说明
Int16 相当于 short 占2个字节 -32768 ~ 32767 Int32 相当于 int 占4个字节 -2147483648 ~ 2147483647 Int64 ...
- oracle中int类型和number类型区别
INT类型是NUMBER类型的子类型.下面简要说明:(1)NUMBER(P,S)该数据类型用于定义数字类型的数据,其中P表示数字的总位数(最大字节个数),而S则表示小数点后面的位数.假设定义SAL列为 ...
- Oracle中INT、FLOAT、NUMBER区别
Oracle里的int等于number(长度,0) float也类似,number要定义小数部分的位数,而float不用定义后边小数有几位 因为NUMBER要确定长度,后边确定小数位. 所以,如果不 ...
- PHP 中 int 和 integer 类型的区别
半夜整理东西,发现一个以前没留意到的小问题. function show($id) : int { return $id; } function show($id) : integer { retur ...
- C# 与数据库中字段类型 Int16(short), Int32(int), Int64(long)的取值范围、区别 。string长度
一开始看到Int16, Int32, Int64这三种类型就觉得有点怪, 为什么要整个数字结尾的, 挺怪的. 昨天互相想到, ms这么干就是想让大家一眼就知道这个数据类型占多大空间吧. Int8, 等 ...
随机推荐
- poj2407(欧拉函数模板)
sqrt(n)复杂度 欧拉函数模板 #include <iostream> #include <cstdio> #include <queue> #include ...
- 集合划分——cf1028D思维题
非常思维的一道题目,题意很长 给定s1,s2两个集合,s1维护最大值,s2维护最小值,s1的所有元素要比s2小 操作1:往两个集合里的任意一个添加x 操作2:把x从所在的集合里删掉:要求被删的x必须是 ...
- ros Python找不到msg包的问题解决办法
https://answers.ros.org/question/113671/catkin-package-cannot-find-own-message-type-python/ 原因是因为.py ...
- 「BZOJ2300」[HAOI2011] 防线修建
传送门 操作离线之后倒着做,只有加点操作. 用set动态维护凸包即可. //Achen #include<algorithm> #include<iostream> #incl ...
- Flask从入门到入土
一.flask介绍 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对 ...
- (转)第01节:初识简单而且强大的Fabric.js库
Fabric.js是一个功能强大和简单Javascript HTML5的canvas库.Fabric提供了很多可以互动的Canvas元素,还在canvas上提供了SVG的语法分析器. 你可以轻松的使用 ...
- 接口Interface解耦的理解
定义一个接口 磁盘 interface Disk(){ void save(File file); } U盘和硬盘都是磁盘,都实现这个接口 class UDisk implement Disk ...
- 04_Hibernate检索方式
一.Hibernate检索方式概述 OID检索方式:按照对象的OID来检索对象(get/load) HQL检索方式:使用面向对象的HQL查询语言 QBC检索方式:使用QBC(Query By Crit ...
- GitHub:如何构建一个股票市场知识图谱?(附代码&链接)
来源:专知 本文约 600007 董事⻓/董事 高燕 女 60 600007 执⾏董事 刘永政 男 50 600008 董事⻓/董事 ··· ··· ··· ··· ··· 注:建议表头最好用相应的英 ...
- eclipse中使用lombok不生效
eclipse中使用lombok,在实体类中添加@Data后,还是不能调用get.set方法.需要修改eclipse配置 1.将 lombok.jar 复制到eclipse.ini同级目录.下载的lo ...