C# int 字节转换

标签 c# int byte

<分区>

为什么是

byte someVar;
someVar -= 3; 

有效但是

byte someVar;
someVar = someVar - 3;

不是吗?

最佳答案

令人惊讶的是,当您对字节执行操作时,计算将使用 int 值完成,字节首先隐式转换为 (int)short 也是如此,类似地,float 在进行浮点运算时会向上转换为 double

第二个片段相当于:

byte someVar;
someVar = (int) someVar - 3;

因此,您必须将结果转换回 (byte) 以使编译器接受分配。

someVar = (byte) (someVar - 3);

关于C# int 字节转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3641274/

相关文章:

c# - 在 MVC 中调用和返回 SQL 函数值

c# - 使用另一个线程处理对状态的只读访问的更好方法?

c# - 如何获取渲染用户控制路径,即使用渲染 ID 的 Ascx 文件

c# - 字互操作 C# : Insert new page using existing page

c - C 中取消引用的 int* 和 int 的 bool 比较失败

struct - golang 将字节数组转换为结构

Java - 将十六进制转换为十进制 - 制作一个字符串=正确的数字

c++ - 检查数组的特定列中是否存在整数

c++ - 安全地将 2 个字节转换为短字节

java - 将字节数组转换为字符串