组装|将32位负数转换为其未签名的重新表示(也是32位)

时间:2012-07-10 23:57:47

标签: assembly

我有一个int(16位)数组:{10,-20,30,-40}我想:

  1. 对数组求和并将结果显示为未编号的32位数
  2. 对数组求和并将结果显示为32位数(带符号)
  3. 表示:

    32 bit  un-signed  : 131052
    32 bit negative Number positive : -20 
    

1 个答案:

答案 0 :(得分:0)

根本不清楚你究竟在追求什么。三个明显的可能性看起来像这样:

#include <iostream>
#include <numeric>

int main() { 

    short array[] = {10, -20, 30, -40};

    std::cout << std::accumulate(array, array+4, (unsigned short)0) << "\n";
    std::cout << std::accumulate(array, array+4, 0U) << "\n";
    std::cout << std::accumulate(array, array+4, (short)0) << "\n";
    return 0;
}

我不确定你认为你怎么能得到131052的结果 - 这不是你从16位或32位总和得到的。