标签: short

为什么我的Short在VB.net中包含4个字节

根据MSDN,Short数据类型由两个字节组成:https://msdn.microsoft.com/en-us/library/47zceaw7.aspx

但是如果我定义一个Short变量,内容总是4个字节:&HFFFFFFFF

Dim crc As Short = CShort(&HFFFFS) ' crc = &HFFFFFFFF
Dim crc As Short = &HFFFFS         ' crc = &HFFFFFFFF
Run Code Online (Sandbox Code Playgroud)

这句话甚至给我一个错误:

Dim crc As Short = CShort(&HFFFF) ' Error: Constant expression not representable in type 'Short'
Run Code Online (Sandbox Code Playgroud)

这有什么用?为什么我Short不占用两个字节?

MWE补充道:

Public Function CRC16(ByVal dataFrame As Byte(), ByVal dataLength As Int16) As Int16

    Dim index As Int16
    Dim crc As Short = &HFFFFS

    For iCount As Int16 = 0 To CShort(dataLength - …
Run Code Online (Sandbox Code Playgroud)

.net vb.net short

5
推荐指数
1
解决办法
116
查看次数

缩短stackoverflow等链接上的URL文本?

我需要PHP中的一些帮助来创建简短的URL,就像StackOverflow在我们在一个问题的评论中评论任何长URL时创建的那样.

StackOverflow将http://www.noupe.com/how-tos/10-ways-to-automatically-manually-backup-mysql-database.html长网址缩短为这样的短网址noupe.com/...

我的应用程序中需要类似的功能.任何人都可以在PHP中提供一些想法或代码如何做到这一点?

我厌倦了在StackOverflow上搜索它,但没有发现任何问题.我记得我在SO上看过这样的问题,但是现在我无法找到它:(

请帮忙!

php url short

4
推荐指数
1
解决办法
2185
查看次数

在16位微处理器上,我应该使用数据类型short而不是int吗?

我已经读过使用shortvs int实际上为编译器创建了一个低效率,因为它需要使用int数据类型,而不管C整数提升.对16位微处理器来说这是真的吗?

另一个问题:如果我有一个1和0的数组,使用它uint8_tunsigned char16位微处理器是否最有效?或者它仍然存在转换回int的问题.

请帮我澄清这个泥泞的问题.谢谢!

c int types short char

4
推荐指数
1
解决办法
1018
查看次数

何时使用除int之外的数据类型?

我有一个项目,其中我有许多具有许多属性的对象,其值始终小于60,100和255之类的小数字.

我知道在进行数学运算时byte,有必要投射结果.但除此之外,使用a byte或者short所有这些属性是否有任何不利之处?或者另一种看待它的方式,使用bytes或shorts而不是int

.net c# int byte short

4
推荐指数
1
解决办法
817
查看次数

c中的短短整数?

我试图尽可能地挤出我的记忆.我有一个4.9999995e13整数矩阵,但它们只需要是真或假 - 基本上我只需要为这些整数中的每一个存储一位.

我知道C中没有单一的位类型(也许有人可以解释为什么,对我来说),而且我也知道如果short short int存在它将是1字节,与char相同.但是,C中的所有逻辑运算都返回整数(以及一些其他函数).

所以我的问题是:

  • 有没有办法让short short int存在?
  • 如果我要使用char,那么我是否会因为所有int必须完成的铸造而降低性能?
  • 还有另外一种方法让我失踪吗?

只是在案件中它是相关的,我正在与GCC编译C99.

编辑我刚刚在这个维基百科页面上看到有一种_Bool类型,这实际上是标准的吗?

c int boolean short char

4
推荐指数
3
解决办法
7217
查看次数

Windows 64位结构大小因包含的数据类型而异?

我有两个不同的数据结构,原则上应该具有相同的大小,我想知道他们为什么不这样做.

struct pix1 { 
    unsigned char r; 
    unsigned char g;
    unsigned char b; 
    unsigned char a; 
    unsigned char y[2]; 
 }; 

struct pix2 { 
    unsigned char r; 
    unsigned char g;
    unsigned char b; 
    unsigned char a; 
    unsigned short y; 
 }; 
Run Code Online (Sandbox Code Playgroud)

然后,我将这些像素中的四个组合在一起,如下:

struct pix4 {
    pix1 pixels[4]; // or pix2 pixels[4]
    unsigned char mask;
};
Run Code Online (Sandbox Code Playgroud)

...但事实证明,根据sizeof(pix4),这种分组的大小会发生变化,具体取决于我是使用pix1还是pix2.个别sizeof(pix1)== sizeof(pix2),所以我很困惑为什么分组四像素会改变大小.我关心的是因为用2个无符号字符来编写带有短路的程序比较容易,但是每个像素耗费我0.25个字节.

我不确定这个架构是否具体,因为我没有在其他类型的机器上测试过.它可以对齐吗?这是我需要担心的事情,还是我可以继续执行简短的实施?

感谢您的帮助.

c++ struct sizeof short

4
推荐指数
1
解决办法
332
查看次数

为什么jvm在推送堆栈之前将byte&short扩展为int?

java代码:,

byte a_b = 12;
short c_d = 14
Run Code Online (Sandbox Code Playgroud)

用字节码替换

bipush  12 // expands byte1 (a byte type) to an int and pushes it onto the stack
sipush   14 // expands byte1, byte2 (a short type) to an int and pushes it onto the stack
Run Code Online (Sandbox Code Playgroud)

为什么jvm会进行扩展,而不是使用byte和short?

当我打开我的文件的字节码时

编辑:short var = 14被bipush 14取代而不是sipush 14

我的理解不清楚还是有错误?

在此输入图像描述

我正在使用以下版本

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

java byte jvm bytecode short

4
推荐指数
1
解决办法
735
查看次数

用Java打印二进制格式的short

在java中输出short的二进制表示是否有内置支持?

当然,这个,建议使用Integer.toBinaryString(),它的工作原理.没有类似的Short.toBinaryString().还有其他什么吗?

更新: Integer.toBinaryString()不能像Short.toBinaryString()一样工作,如果它存在的话.

public static void main(String[] args) {
    System.out.println(Integer.toBinaryString(Short.MIN_VALUE));
}
Run Code Online (Sandbox Code Playgroud)

产生

11111111111111111000000000000000
Run Code Online (Sandbox Code Playgroud)

而我想看到

1000000000000000
Run Code Online (Sandbox Code Playgroud)

当然,切掉前16位数字很容易,但这是我的观点.这种方法应该存在.

java binary short

4
推荐指数
1
解决办法
7538
查看次数

将float转换为short以最小的精度损失

我有这个正弦波产生浮点值(例如0.37885),但我希望它们作为短路.短流程直接铸造给我的值为0.那么解决方案是什么?

任何人都可以告诉我如何做到这一点 - 理想情况下不会损失精确度 - 或者如果可能的话,最小的精度损失最小化?

java floating-point short

4
推荐指数
2
解决办法
6225
查看次数

在C中查找short int变量的最大值

我正在研究K&R的练习2-1,目标是计算不同变量类型的范围,下面是我计算short int可以包含的最大值的函数:

short int max_short(void) {
    short int i = 1, j = 0, k = 0;
    while (i > k) {
        k = i;
        if (((short int)2 * i) > (short int)0)
            i *= 2;
        else {
            j = i;
            while (i + j <= (short int)0)
                j /= 2;
            i += j;
        }
    }
    return i;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是这个函数返回的值是:-32768这显然是错误的,因为我期待一个正值.我无法弄清楚问题出在哪里,我使用相同的函数(在变量类型中有变化)来计算int可以包含的最大值,并且它有效...

我虽然问题可能是由于ifwhile语句内部的比较引起的,因此类型转换却没有帮助......

是什么原因引起了这个?提前致谢!

编辑:感谢Antti Haapala的解释,符号位的溢出导致未定义的行为,而不是负值.

c size short typecase

4
推荐指数
1
解决办法
922
查看次数

标签 统计

short ×10

c ×3

int ×3

java ×3

.net ×2

byte ×2

char ×2

binary ×1

boolean ×1

bytecode ×1

c# ×1

c++ ×1

floating-point ×1

jvm ×1

php ×1

size ×1

sizeof ×1

struct ×1

typecase ×1

types ×1

url ×1

vb.net ×1