我在接受采访时被问到以下问题.
int countSetBits(void *ptr, int start, int end);
Run Code Online (Sandbox Code Playgroud)
概要:
假设ptr指向一大块内存.将此存储器视为连续的位序列,start并且end是位位置.假设start并end
具有适当的值,ptr并指向初始化的内存块.
问:
写C代码来计算从设置的位数start来end[含],返回计数.
只是为了让它更清晰
ptr---->+-------------------------------+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
+-------------------------------+
| 8 | 9 | |15 |
+-------------------------------+
| |
+-------------------------------+
...
...
+-------------------------------+
| | S | |
+-------------------------------+
...
...
+-------------------------------+
| | E | |
+-------------------------------+
...
...
Run Code Online (Sandbox Code Playgroud)
我的解决方案 …
我在little-endian [LE]机器[Linux,Intel处理器]上运行了以下程序.我无法在下面的代码片段中解释3个输出.由于机器是LE,因此值a存储为0x78563412.打印时,它显示其实际值.由于它是LE机器,我希望ntohl()它是一个无操作和显示器0x78563412,它正在做.但是,我希望0x12345678第二个打印声明包含htonl().有人可以帮我理解他们为什么一样吗?
int main()
{
int a = 0x12345678;
printf("Original - 0x%x\n", (a));
printf("Network - 0x%x\n", htonl(a));
printf("Host - 0x%x\n", ntohl(a));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
Original - 0x12345678
Network - 0x78563412
Host - 0x78563412
Run Code Online (Sandbox Code Playgroud) 我已经用C语言进行了一段时间的专业编程,但是仍然对一些与指针相关的问题感到困惑。我非常感谢SO社区对理解以下问题的帮助。
以下代码崩溃并生成了核心文件。
void func1() // Frame 1 in GDB stack trace.
{
UTYPE *ptr; // pointer to user defined type
...
// data is of type UTYPE and has valid contents.
// lets say its address is 0x100
ptr = &data; --- (1)
...
func2(ptr); --- (2)
...
}
void func2(UTYPE *inp) // Frame 0 in GDB stack trace.
{
if(!inp) --- (3)
return;
...
// another_ptr is of UTYPE * which is a NULL.
inp = another_ptr; ---- (4) …Run Code Online (Sandbox Code Playgroud) 有没有办法将一系列提交导出到Git的补丁中.假设我需要从存储库导出最后5个提交并将它们导入另一个存储库.我该怎么做呢?
对此的帮助将不胜感激.
这是我的git log命令:
git log --no-merges --date=format:'%Y-%m-%d' --format=format:'%C(bold blue)%h%C(reset) %C(green)%cD%C(reset) %C(cyan)%an%C(reset) %sd'
Run Code Online (Sandbox Code Playgroud)
这是输出:
b4d6b7b8c Wed, 24 Aug 2022 19:31:20 -0700 FirstName1 LastName1 Sample subject 1
14d2b9170 Wed, 24 Aug 2022 19:23:12 -0700 FirstName2 LastName2 Sample subject 2
8c4fda8b2 Wed, 24 Aug 2022 18:53:54 -0700 FirstName3 LastName3 Sample subject 3
...
Run Code Online (Sandbox Code Playgroud)
我期待2022-08-24输出中的日期格式。
我阅读了 Git 文档,特别是--date选项。我犯了什么错误?这是否与提交者日期(%cD)无法更改为我要求的格式有关?