相关疑难解决方法(0)

是否可以创建一个包含unsigned int的数组?

我正在尝试使用数组保存rgba数据(0x00000000→0xFFFFFFFF),当我将值超过2,147,483,647溢出时,我假设因为某些可能的转换(可能是无符号→已签名).

这是我的代码:

int main(int argc, char* args[]) {
    uint32_t *background = new uint32_t[1920*1080];

    background[100] = 0xFF0000FF; //red, 4278190335
    printf("%d, ", background[100]);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

-16776961
Run Code Online (Sandbox Code Playgroud)

我仍然对C++有些新意,所以如果我忘记某些事情,请指出它.

c++

6
推荐指数
2
解决办法
999
查看次数

C Unsigned int提供负值?

我有一个无符号整数但是当我使用%d打印出来时,有时会出现负值吗?

c int unsigned

5
推荐指数
2
解决办法
9435
查看次数

unsigned int类型的函数返回负数

哇我以为我知道我的C++,但这很奇怪

这个函数返回一个unsigned int所以我认为这意味着我永远不会得到一个负数返回吗?

该函数确定您前进或后退的时间.所以对我来说,我在澳大利亚,悉尼所以我是+10 GMT,这意味着我是UTC = LocalTime +( - 10).因此,GetTimeZoneInformation正确地确定我是-10.

但我的函数返回一个unsigned int所以不应该返回10而不是-10?

unsigned int getTimeZoneBias()
{
    TIME_ZONE_INFORMATION tzInfo;
    DWORD res  = GetTimeZoneInformation( &tzInfo );

    if ( res == TIME_ZONE_ID_INVALID )
    {
        return (INT_MAX/2); 
    }

    return (unsigned int(tzInfo.Bias / 60));  // convert from minutes to hours         
}

TCHAR ch[200];
_stprintf( ch, _T("A: %d\n"), getTimeZoneBias()); // this prints out A: -10
debugLog += _T("Bias: ") + tstring(ch) + _T("\r\n");
Run Code Online (Sandbox Code Playgroud)

c c++ winapi unsigned-integer

2
推荐指数
1
解决办法
6663
查看次数

标签 统计

c ×2

c++ ×2

int ×1

unsigned ×1

unsigned-integer ×1

winapi ×1