当我想将整数(例如 32 位整数/int)转换为另一种整数类型(例如 8 位整数/字节)时是否有区别。这是我可以转换它的两种方式的一些示例代码:
byte foo(int value)
{
//return value; <-- this causes problems because I need to convert it to byte
//First way(most people use this):
return (byte)value; //this involves casting the value and also works if value is floating point type
//Second way:
return value & byte.MaxValue; //byte.MaxValue is a constant that is 255
}
那么这两者有什么区别吗?我知道按位运算仅适用于整数类型。我知道第二种方式不太可读或不推荐。除了两种方式的输出有什么不同。这不仅适用于 int 和 byte,而且适用于每个整数-整数类型组合。
好的,看来此操作在不同语言中具有不同的行为。我不想看到差异,所以请发布 C++/C#/D 的答案。
我也忘了我的意思是无符号整数(无符号)。所以它适用于所有无符号整数类型。