c# - 哪个位标志一个字节?
问题描述
我知道sbyte
为了“签署”它的价值,无论是正面的还是负面的,都会放弃一点。这自然会留下 7 位的值 7 2 = 128(0 到 127 或 -1 到 -128 取决于签名位)。
我的问题是,字节中的 8 位中的哪一个是签名位?我想它是第8位,MSB?
我问,因为我希望byte foo = -1
明确地转换为129
with,byte bar = (byte)foo
因为底层的位结构是10000001
. 但是,以上返回bar
为 255。
测试代码
sbyte negative = -1;
sbyte postive = 1;
byte negativeResult = (byte)(negative & 0b_1000_0001);
byte positiveResult = (byte)(postive & 0b_1000_0001);
Console.WriteLine($"Negative evaluated to: {Convert.ToString(negativeResult, toBase: 2)}");
Console.WriteLine($"Positive evaluated to: {Convert.ToString(positiveResult, toBase: 2)}");
输出
Negative evaluated to: 10000001
Positive evaluated to: 1
解决方案
推荐阅读
- python - python导入错误,因为sys.path引用了另一个目录
- ios - 它是哪种图形类型?
- django - 为什么 date_joined 为空?
- python - 如果发生错误以使用不同的 URL,则 Python 异常 - openrouteservice
- django - 使用 django 从数据库中删除/重置一个/多个(指定)模型
- enums - 如何从 Hasura 创建一个 get-graphql-schema 枚举?
- python - 为什么我在 O(n) 中得到 TLE?是因为 Python 吗?请帮助我卡住了。| 图表 | BFS | 数字文件系统 | 蟒蛇 | C++ |
- linux - 在特定 CPU 上运行进程
- c# - 构造函数未找到异常
- mamp - MAMP PRO - 糟糕,您的序列号似乎有问题