|
|
1
3
为什么需要转换?消化道有160点长。摘要仅以两种方式使用: 你用类似
与另一个摘要进行比较
它就像一个20字节长的字节数组一样工作得很好。你不必担心词尾、单词长度等问题。 |
|
2
3
好吧,这超过了4个字节,所以如果您的系统使用32位作为无符号整型,那么在不丢失信息的情况下就不能这样做。噢,这一定是某种杂烩。 |
|
|
3
1
这是160位,所以很难放在一个无符号整数中。但是,它当然可以放在一个无符号整数数组中。 类似这样的事情(丑陋,对机器架构做了一些假设,可能会使用char-bits和其他一些编译时间来获得正确的常量,但应该足够证明概念): unsigned int (*convert)(unsigned char *original)
{
unsigned int *rv = malloc(5*sizeof(unsigned int));
char *tp = original;
for (rvix=0;rvix<5;rvix++) {
rv[rvix] = *(tp++)<<24;
rv[rvix] |= *(tp++)<<16;
rv[rvix] |= *(tp++)<<8;
rv[rvix] |= *(tp++);
}
return rv;
}
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |