Int是多少位的?

wantsong 2006-10-17 03:42:32
问题源于看到C#提供了两个关键字,checked和unchecked。其中unchecked用于取消整型算术运算和转换的溢出检查。
我想问问在什么场合下会使用unchecked,尽管编译可以过,但是运行时会报错啊。
一位朋友解释,在32位情况下是32位的运行可能出错,在64位时就不会报错了。这样的解释对么?
我理解int的长度是由.NET Framework管理的,即CLR,不会跟机器位数相关。
...全文
4107 47 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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是不是无符号的了,如果错了,就错了吧,意思明白就行了
加载更多回复(27)

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧