问题标签 [sbyte]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
860 浏览

c# - -128 如何适合一个 sbyte

我记得我们已经了解到有符号整数类型(sbyte、short、int、long)的第一位是符号,后 7 位是值。

我看到 sbyte 范围是 -128 到 127,而我认为它必须是 -127 到 127。

我尝试了一些代码来理解这是怎么可能的,我遇到了两个奇怪的事情:

1-我尝试了以下代码:

结果是

1111111100000000

好像它是一个两字节变量。

2-尝试将范围内的所有数字转换为二进制:

如果我省略if(i==127) break;循环继续。并且随着中断,循环中的代码不会执行,有些好像 -128 大于 127。

我的结论: 因为我认为 -128 一定不适合无符号字节变量,并且第一次和第二次尝试批准 (111111110000000 > 01111111) 但如果它不适合,那么为什么范围是 -128 到 127?

0 投票
1 回答
57 浏览

c# - 检查范围和设置默认值时简化 if 子句

我有一个将double值转换为sbyte并返回其十六进制表示的函数:

计算的_Value值应该在范围内,[-127 ; 127]如果不是,则必须将这些值设置为默认值。

问题:如何简化这两个if条件和默认值的设置?

编辑:

我尝试使用条件运算符?,但实际上它并没有简单得多(甚至更难阅读),而且代码也并不少

附言。这个问题更多地用于教育目的。寻找不同的方法来检查变量的范围

0 投票
2 回答
700 浏览

c# - 如何将 C# 类字符串变量传递给 sbyte* 参数?

我继承了一个带有相关头文件的 C++ DLL,函数声明如下

我还继承了一个引用 VC++ 引用类,它包装了上面要在 C# 环境中使用的 DLL

在我的 C# 应用程序中,我可以使用 func1_w(int i),但我不明白如何将字符串传递给 func2_w(sbyte* s):我收到一个错误,提示我无法获得指向 sbyte 的指针。我将 C# 项目设置为不安全并将函数声明为不安全。

如何将 sbyte* 参数传递给 functiuon func2_w?

0 投票
1 回答
138 浏览

c# - 为什么 [1111 1111] 在 Integer 中表示为 -1 而不是 255?

我根据规则进行数字符号替换:逐位反转,然后加 1,但我使用的是整数数据类型而不是 sbyte。编译器如何理解我正在更改符号,

在此处输入图像描述

并且不返回值 255?

输出:“~1 + 1 = -1”

0 投票
0 回答
35 浏览

c# - 将年份值分配给 sbyte

我正在使用无法修改的库中存在的函数。该函数用于由用户设置日期。它的参数是

当我分配 2019 年时。我想将 2019 年分配给sbyte年份。但最大值sbyte是 127。我不能使用年份的最后两位数。由于此函数将所有四位数字作为年份。你能帮我看看我应该如何解决这个问题。我必须使用这个功能。没有其他选项可以编写任何扩展方法。

0 投票
1 回答
121 浏览

c# - 为什么在 sbyte 中转换大双精度值在 C# 中返回 0?

我实际上在未经检查的上下文中测试了 C# 中的强制转换行为。就像文档说的那样,在未经检查的情况下,演员阵容总是成功的。但有时,在特定情况下,从一种特定类型转换为另一种类型会产生意想不到的结果。

例如,我测试了三个“double to sbyte”转换:

为了清楚起见,第二个和第三个 double 之间的区别只是1( secondDouble - firstDouble = 1)。在这种情况下,强制转换的结果似乎总是0针对任何“大”双值。

我的问题是:为什么第二次和第三次强制转换会导致0?我在 C# 文档中搜索了答案,但没有找到任何答案。

我使用 .Net Framework 4.7.2 测试了上述内容。

0 投票
1 回答
55 浏览

c# - 创建 100 个变量

所以我创建了一个包含 100 个变量的数组,使用Enumerable.Range. 数据类型限于Int32.

问题

  • 如何创建相同的数组SByte

  • 我是否认为我需要使用循环来创建和索引变量?

我在网上环顾四周,大多数结果都涉及为循环声明计数变量,但没有使用循环声明变量