我有一个计数寄存器,它是由两个32位无符号整数,一个用于值(最显著字)的高32位,以及其他为值(至少显著字)的低32位.
在C中组合这两个32位无符号整数然后显示为大数的最佳方法是什么?
具体来说:
leastSignificantWord = 4294967295; //2^32-1
printf("Counter: %u%u", mostSignificantWord,leastSignificantWord);
Run Code Online (Sandbox Code Playgroud)
这打印很好.
当数字增加到4294967296时,我有它,所以最少有意思的W擦除为0,而且最重要的是Word(最初为0)现在为1.整个计数器现在应该读取4294967296,但是现在它只读取10,因为我只是连接1个来自最重要的词,0个来自最不重要的词.
我怎么能让它显示4294967296而不是10?
我正在尝试了解Google测试夹具的工作原理.
说我有以下代码:
class PhraseTest : public ::testing::Test
{
protected:
virtual void SetUp()
{
phraseClass * myPhrase1 = new createPhrase("1234567890");
phraseClass * myPhrase2 = new createPhrase("1234567890");
}
virtual void TearDown()
{
delete *myPhrase1;
delete *myPhrase2;
}
};
TEST_F(PhraseTest, OperatorTest)
{
ASSERT_TRUE(*myPhrase1 == *myPhrase2);
}
Run Code Online (Sandbox Code Playgroud)
当我编译时,为什么在TEST_F中声明"myPhrase1"和"myPhrase2"未声明?
在C++中,如何将两个整数组合(注意:不添加)成一个大整数?
例如:
int1 = 123;
int2 = 456;
Run Code Online (Sandbox Code Playgroud)
是否有一个函数来取两个数字并将intCombined转换为123456?
编辑:
我不好解释清楚.如果int2为0,则答案应为123,而不是1230.实际上,如果int2超过32位限制,则int1(左侧的数字)将只有一个值.所以当int2为0时,int1为0(或垃圾,我不确定).
我正在尝试创建一个批处理脚本:
例如:我的文件夹中有名为Picture.JPG和Picture2.JPG的文件。该批处理需要复制文件名“Picture”和“Picture2”并将其粘贴到textfile.txt中,其中已经有我不想覆盖的最后一行,因此它会显示如下:
Picture
Picture2
This is the last line
Run Code Online (Sandbox Code Playgroud)
请注意,我不想复制 .JPG 扩展名。
有任何想法吗?