导航
  • 主页
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm
  • WPF
  • 问答

Int是多少位的?

wantsong 2006-10-17 03:42:32
问题源于看到C#提供了两个关键字,checked和unchecked。其中unchecked用于取消整型算术运算和转换的溢出检查。
我想问问在什么场合下会使用unchecked,尽管编译可以过,但是运行时会报错啊。
一位朋友解释,在32位情况下是32位的运行可能出错,在64位时就不会报错了。这样的解释对么?
我理解int的长度是由.NET Framework管理的,即CLR,不会跟机器位数相关。
...全文
3306 点赞 收藏 47
写回复
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxkid 2006-10-18
int -> System.Int32 32位
long -> System.Int64 64位
与机器无关
回复
xingyaohua 2006-10-18
32
回复
SupermanZgn 2006-10-18
JF
回复
wuhuiITren 2006-10-18
mark
回复
zhouyan024 2006-10-18
C#中int是32位。不管几位机
回复
fls975 2006-10-18
32位 与机器无关
回复
xxj 2006-10-18
一般都是32位的. 不管是那种语言.
回复
jazy 2006-10-18
mark
回复
江城老温 2006-10-18
跟硬件有关系吧。
64位机,int是64位(8字节)。
32位机,int是32位(4字节)。
回复
julong88 2006-10-18
32


在c/c++里是跟机器有关的吧
回复
xiantao123 2006-10-18
讨论的热闹呀,我本也想发表下看法,看完大家的回复,我也糊涂了。
期待正解
回复
xiaoxiangx 2006-10-18
int是指int32
uncheck就如楼上的朋友们说的
是不检查溢出,在C#入门经典里也有提到,你可以去查一下
回复
nuoboxgx 2006-10-18
32bit
回复
yjbgwxf123 2006-10-18
32位
回复
test33 2006-10-18
是不是 跟机器不一样吖`

那 双核的呢`
回复
boovo 2006-10-18
学习先
回复
yeerh 2006-10-17
32位的操作系统64位的CPU下还是 32位.

64位的操作系统64位的CPU未用过..不清楚

跟机器位数无关....即使有也是跟操作系统有关
回复
Nick_Nick 2006-10-17
上面的有错误,应该是byte b = (byte)(255+2)
回复
Nick_Nick 2006-10-17
c#中的int是int32的简写,不管机器是多少位的,他总是32位的。
回复
Nick_Nick 2006-10-17
如果算术运算结果位数超出了变量类型的最大表示位数,则会溢出
比如说
byte b = 255 + 2
由于Byte类型只能表示0-255,无法表示257,就出现了溢出错误
如果用了checked(默认情况)程序就会跑出一个异常
如果用了unchecked,程序就不会抛出异常,而是忽略溢出错误,这时b=1
int也是一样的
ps:记不清byte是不是无符号的了,如果错了,就错了吧,意思明白就行了
回复
发动态
发帖子
C#
创建于2007-09-28

10.4w+

社区成员

.NET技术 C#
申请成为版主
社区公告

全世界最好的语言,没有之一.