gpt4 book ai didi

c++ - 将两条短裤组合成一个整数的最干净的方法

转载 作者:可可西里 更新时间:2023-11-01 18:03:46 25 4
gpt4 key购买 nike

我有两个 16 位短裤(s1 和 s2),我试图将它们组合成一个 32 位整数 (i1)。根据我正在处理的规范,s1 是最重要的词,s2 是最不重要的词,组合后的词似乎是有符号的。 (即 s1 的最高位是符号。)

组合 s1 和 s2 的最干净的方法是什么?

我想到了类似的东西

const utils::int32 i1 = ((s1<<16) | (s2));

会做,而且它似乎工作,但我担心左移 short 16。

此外,我对使用 union 来完成这项工作的想法很感兴趣,请问这是好主意还是坏主意?

最佳答案

只有当 shorts 和 int 都是无符号的时候,你所做的才有意义。如果任一短裤带符号且具有负值,则将它们组合成单个 int 的想法是没有意义的,除非您已获得特定领域的规范以涵盖这种可能性。

关于c++ - 将两条短裤组合成一个整数的最干净的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1294649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com