Ish*_*eet -2 c embedded floating-point printf
我有这个变量
unsigned long long latitude = 29.47667;
Run Code Online (Sandbox Code Playgroud)
当我将此值转换为这样的数组时
ar[7] = (uint8_t)((latitude >> 56) & 0xFF);
ar[6] = (uint8_t)((latitude >> 48) & 0xFF);
ar[5] = (uint8_t)((latitude >> 40) & 0xFF);
ar[4] = (uint8_t)((latitude >> 32) & 0xFF);
ar[3] = (uint8_t)((latitude >> 24) & 0xFF);
ar[2] = (uint8_t)((latitude >> 16) & 0xFF);
ar[1] = (uint8_t)((latitude >> 8) & 0xFF);
ar[0] = (uint8_t)(latitude & 0xFF);
Run Code Online (Sandbox Code Playgroud)
然后使用tcp socket将其发送到服务器.当我发送时,我以十六进制打印值,然后我0x1d全部休息.
如何在将unsigned long long转换为int时将确切的值发送到服务器.
unsigned long long latitude = 29.47667没有多大意义,unsigned long long是一个整数类型.所以变量只获得截断的整数29.
这就是为什么你只得到0x1d,这只是29十六进制.
| 归档时间: |
|
| 查看次数: |
585 次 |
| 最近记录: |