草庐IT

GL_UNSIGNED_SHORT

全部标签

c++ - unsigned(-0.0) 的行为是否在 C++ 中定义?

C++114.9float转换[conv.fpint]:Aprvalueofafloatingpointtypecanbeconvertedtoaprvalueofanintegertype.Theconversiontruncates;thatis,thefractionalpartisdiscarded.Thebehaviorisundefinedifthetruncatedvaluecannotberepresentedinthedestinationtype.如果值为-0.0,是否定义了行为?归结为“截断值是否不能在目标类型中表示”。可以表示为零。可以负零吗?在这种情况下,这两

c++ - 为什么 unsigned char << unsigned char 的结果不是 unsigned char

我从左移得到的结果我找不到解释。unsignedcharvalue=0xff;//11111111unsignedchar=0x01;//00000001std::cout我原以为结果是11111110但我得到的是int(?),值为111111110。如何将unsignedchar的位向左移动,以便截断位,结果为11111110?我想做的是读取一系列字节并将它们解释为不同长度(1-32位)的整数。F0F51111000011110101可能是0F(first4bits)0F(next8bits)05(last4bits)这与不对小于int的类型进行算术运算有关吗?

c++ - OpenGL 3 : glBindVertexArray invalidates GL_ELEMENT_ARRAY_BUFFER

我确信如果您通过glBindBuffer()绑定(bind)一个缓冲区,您可以安全地假设它保持绑定(bind)状态,直到目标通过另一次调用glBindBuffer()。因此,当我发现调用glBindVertexArray()会将绑定(bind)到GL_ELEMENT_ARRAY目标的缓冲区设置为0时,我感到非常惊讶。这是最小的C++示例代码:GLuintbuff;glGenBuffers(1,&buff);std::cout我在初始化OpenGL3.2设备上下文后立即运行此代码并获得以下输出:Bufferis1BoundbeforeglBindVertexArray:1Boundaft

c++ - 如何在不制作拷贝的情况下将 `std::string` 转换为 `std::vector<unsigned char>`?

我想调用一个库函数,它的签名是:boolWriteBinary(conststd::vector&DataToWrite);我有一个std::string变量,我想将这个函数作为参数发送给它。voidWriteString(conststd::string&TextData){//...WriteBinary(TextData);//有没有一种方法可以直接发送std::string变量而不复制它? 最佳答案 没有办法做到这一点,因为不能保证这两种类型的布局在任何方面都相似。最好的方法是修复WriteBinary以使用“迭代器”代替:

c++ - 是 unsigned char ('0' ) 合法的 C++

以下代码在VisualStudio中编译但在g++下编译失败。intmain(){inta=unsignedchar('0');return0;}unsignedchar()是一种有效的C++转换方式吗? 最佳答案 不,这是不合法的。函数式显式类型转换需要一个简单类型说明符,后跟一个带括号的表达式列表。(§5.2.3)unsignedchar不是简单类型说明符;这与James提出的问题有关.显然,如果unsignedchar是一个简单类型说明符,它将是合法的。解决方法是使用std::identity:templatestructid

c++ - 在 C++ 中将 unsigned char 转换为 int

我有一个包含值的变量unsignedchar,例如40。我想要一个int变量来获取该值。最简单、最有效的方法是什么?非常感谢。 最佳答案 unsignedcharc=40;inti=c;大概你的问题肯定不止于此...... 关于c++-在C++中将unsignedchar转换为int,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/10563642/

c++ - 在 for... 循环中使用 short 而不是 int 的好处

在for循环中使用short而不是int有什么好处吗?即for(shortj=0;j我99%的循环涉及3000以下的数字,所以我认为整数会浪费字节。谢谢! 最佳答案 不,没有任何好处。short最终可能会占用一个完整的寄存器(32位,一个int)。在IDE中输入额外的两个字母也会浪费时间。(那是个玩笑)。 关于c++-在for...循环中使用short而不是int的好处,我们在StackOverflow上找到一个类似的问题: https://stackover

c++ - Memset 一个 int(16 位)数组到 short 的最大值

似乎无法在任何地方找到这个问题的答案,如何将数组memset为数组类型的最大值?我原以为memset(ZBUFFER,0xFFFF,size)可以在ZBUFFER是16位整数数组的情况下工作。相反,我始终得到-1。此外,我们的想法是尽可能快地完成这项工作(它是一个需要初始化每一帧的zbuffer)所以如果有更好的方法(并且仍然一样快或更快),请告诉我。编辑:作为澄清,我确实需要一个带符号的int数组。 最佳答案 在C++中,您将使用std::fill和std::numeric_limits。#include#include#incl

c++ - c++中 "unsigned long int"的最大值

我如何知道“unsignedlongint”类型的变量的最大可赋值是多少? 最佳答案 显而易见的方法是使用std::numeric_limits::max(); 关于c++-c++中"unsignedlongint"的最大值,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/18301685/

c++ - 使用 typedef'd uint 会导致错误,而 "unsigned int"不会...?

出于某种原因,当我在我的程序中将变量定义为“uint”而不是“unsignedint”时,它会出错。这看起来很奇怪,因为uint被定义为:typedefunsignedintuint;...所以我认为我可以互换使用这两者。更确切地说,我将返回“unsignedint”的函数的结果分配给一个uint变量,然后在vector调整大小调用中使用该uint...此时出错。即,我的代码看起来像这样:unsignedintgetUInt(){return3;}intmain(void){vector>vectVect(100000);for(uinti=0;i&myVect=vectVect[i]