2017-09-27 44 views

回答

0

忽略溢出,這給你一個unsigned long長(我相信是64位,而不是32):

unsigned long long r = 0; 
while (*pstr >= '0' && *pstr <= '9') r = r * 10 + (*pstr++ - '0'); 
0

你必須11767989860而是以字符串形式,你想讓它打入整數數組{0x2,0xBD6D4664}

你可以先轉換成字符串很長很長,然後從長長的變量拷貝4個字節到你的整數數組。

下面是示例程序

#include<stdio.h> 
#include<stdint.h> 
int main() 
{ 
unsigned long long ll = 0; 
uint32_t arr[2]; 
char str[]="11767989860"; 
char *tmpPtr = NULL; 
tmpPtr = &ll; 

sscanf(str,"%llu",&ll); 
printf("ll=%llu",ll); 

/*Big endian*/ 
memcpy(arr,&ll,sizeof(ll)); 
printf("\n%u %u\n",arr[0],arr[1]); 
/*Little endian*/ 
memcpy(&arr,&tmpPtr[4],sizeof(ll)/2); 
memcpy(&arr[1],&tmpPtr[0],sizeof(ll)/2); 
printf("\n%u %u\n",arr[0],arr[1]); 

return 0; 
} 
+0

這是非常有幫助的。順便說一句,是否有可能返回一個班輪? – softwarevamp