int x=-28;
byte y=(byte)x;
C#中byte类型是无符号8位整数类型,值范围为0~255.
数字在内存中是按补码的形式存放的,-28 的补码为:
11111111 11111111 11111111 11100100
那么将x强制转换为byte类型的时候,就会拿到最低的八位 11100100, 并且认为它是一个byte类型,即无符号的整数。
这样就得到了11100100所表示的正整数228.
int x=-28;
byte y=(byte)x;
C#中byte类型是无符号8位整数类型,值范围为0~255.
数字在内存中是按补码的形式存放的,-28 的补码为:
11111111 11111111 11111111 11100100
那么将x强制转换为byte类型的时候,就会拿到最低的八位 11100100, 并且认为它是一个byte类型,即无符号的整数。
这样就得到了11100100所表示的正整数228.