这个赋值如何在c#中起作用?

Hav*_*abi 1 c#

我的问题是这个赋值是如何在c#中发生的?我的意思是,它如何计算答案1(用257),它如何计算0(用256)?

代码是:

int intnumber=257;
byte bytenumber=(byte)intnumber;//the out put of this code is 1

int intnumber=256;
byte bytenumber=(byte)intnumber;//the out put of this code is 0
Run Code Online (Sandbox Code Playgroud)

我的问题是发生了什么,第一个代码中的输出是:1,第二个代码中的输出是:0

hat*_*ica 10

A byte只占用内存中的一个字节.一个int占用4个字节的内存.这是您提到的一些int值的二进制表示:

      most significant           least significant
 255: 00000000 00000000 00000000 11111111
 256: 00000000 00000000 00000001 00000000
 257: 00000000 00000000 00000001 00000001
Run Code Online (Sandbox Code Playgroud)

您还可以在将负int值转换为字节时查看其工作原理.当转换为字节时,-255的int值为1.

-255:  11111111 11111111 11111111 00000001
Run Code Online (Sandbox Code Playgroud)

将int转换为字节时,只将最低有效字节分配给字节值.忽略三个较高有效字节.


McA*_*den 8

单个字节最多只能达到255.代码包围为0表示256表示,1表示257表示等等...

最重要的位被丢弃,剩下的就剩下了.