C# 有符号的小吃有意义吗?
我编写了这个helper方法来将C# 有符号的小吃有意义吗?,c#,byte,unsigned,signed,nibble,C#,Byte,Unsigned,Signed,Nibble,我编写了这个helper方法来将字节解包到半字节上: public static void Deconstruct(this byte value, out byte nibble1, out byte nibble2) { nibble1 = (byte) ((value >> 00) & 0x0F); nibble2 = (byte) ((value >> 04) & 0x0F); } 很自然地,我想对sbyte(有符号字节)也这样做
字节
解包到半字节上:
public static void Deconstruct(this byte value, out byte nibble1, out byte nibble2)
{
nibble1 = (byte) ((value >> 00) & 0x0F);
nibble2 = (byte) ((value >> 04) & 0x0F);
}
很自然地,我想对sbyte
(有符号字节)也这样做:
但是,至少可以说,sbyte
有点令人困惑
问题:
当将
sbyte
(有符号字节)解包为半字节时,这些半字节是否也有符号?无符号。nybles是4位的。如果你认为他们签署了,你必须签署扩展他们。这些额外的比特没有任何价值,当你重新打包它们时,它们就会丢失。为了简单起见,把它们看作是未签名的,即使在打包值被签署的时候。这是有意义的,谢谢。如果你愿意的话,贴一个答案,我会接受的。未签名。nybles是4位的。如果你认为他们签署了,你必须签署扩展他们。这些额外的比特没有任何价值,当你重新打包它们时,它们就会丢失。为了简单起见,把它们看作是未签名的,即使在打包值被签署的时候。这是有意义的,谢谢。如果你愿意,就贴一个答案,我会接受的。
public static void Deconstruct(this sbyte value, out byte nibble1, out byte nibble2)
{
nibble1 = (byte) ((value >> 00) & 0x0F);
nibble2 = (byte) ((value >> 04) & 0x0F);
}