char []到uint64_t
发布时间:2020-12-14 03:59:30 所属栏目:Windows 来源:网络整理
导读:我正在尝试将char数组转换为uint64_t,但它不起作用. 这是我的代码: char input[8];//Initialisation of inputint i,j;uint64_t paquet=0;for(i = 0; i 8; i++){ for(j = 0; j 8; j++) { paquet+= (input[i] j) 0x01; paquet = paquet 1; }} 解决方法 假设输
我正在尝试将char数组转换为uint64_t,但它不起作用.
这是我的代码: char input[8]; //Initialisation of input int i,j; uint64_t paquet=0; for(i = 0; i < 8; i++) { for(j = 0; j < 8; j++) { paquet+= (input[i] >> j) & 0x01; paquet = paquet << 1; } } 解决方法
假设输入缓冲区已将数据存储在一个小的
endian表示中,这意味着最低有效字节位于最低地址,最高有效字节位于最高地址,那么您可以执行以下操作.
#include <stdio.h> #define __STDC_FORMAT_MACROS #include <inttypes.h> int main(void) { int i; unsigned char input[8] = {0x01,0x02,0x03,0x04,0x5,0x06,0x07,0x08 }; uint64_t paquet = 0; for( i = 7; i >= 0; --i ) { paquet <<= 8; paquet |= (uint64_t)input[i]; } printf("0x%" PRIx64 "n",paquet); return 0; } 您可以在ideone上看到工作示例. 如果缓冲区以big endian模式存储,则反转循环. 感谢m24p指出我的初稿中的错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何检测Windows移动设备是否有摄像头? C#
- Windows7安装JDK的环境变量设置javac不是内部命令或外部命令
- windows – 添加到通知托盘的图标在鼠标悬停时消失
- windows-7 – Windows 7 – 以编程方式配置应用程序以在XP兼
- windows-server-2008 – 计划任务在Windows Server 2008 R2
- 无法在Windows中的Docker内启动TensorFlow
- windows-phone-7 – 如何控制Windows Phone中滚动查看器的滚
- windows – Luasql和SQLite?
- dll – regsvr32不会在注册表中创建任何条目
- msbuild – 为什么我的.wpp.targets文件不能应用在我的构建
推荐文章
站长推荐
- 需要在Windows上将应用程序带到前台
- windows – NavigationView窗格背景
- Windows-8 – WinRT XAML中的日期选择器在哪里?
- 在Windows Server 2008/2012上使用SCHTASKS需要帮
- Windows OMPL安装
- windows-server-2008 – Windows 2008 R2上的低延
- windows-phone-8.1 – Microsoft Band SDK部署错
- windows-server-2003,Windows服务器,命令行下载实
- Windows下 gpu版 Tensorflow 安装
- windows – 如何强制重启而不是关机(XP)
热点阅读