【发布时间】:2018-02-01 16:16:15
【问题描述】:
给定一个二进制补码形式的字节,我试图将该字节转换为它的十进制表示。例如byte 10000000 我需要转换为-128 和byte 01111111 我需要转换为127。我看过这个answer,但我没有成功地接受其中一个答案并让它对我有用。
如何进行转换?
澄清:我正在尝试将二进制补码形式的byte 转换为int,而不是将二进制值的string 表示转换为`int。
【问题讨论】:
-
使用这个:int i = BitConverter.ToInt32(bytes, 0);其中 bytes 是您的字节数组:)
-
int value = (sbyte)byteval;
-
11111111在二进制补码中不是 -128。你确定这是正确的测试用例吗?您能否在问题中添加更多测试用例? -
OP 对二进制补码编码的含义感到困惑。二进制补码中的 -128 是底数 2 中的 10000000。
标签: c#