- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我用下面的代码来测试读取二进制文件,bin_data_file中的内容如下,有512字节。我的问题是为什么使用“printf("buf is %02x\n", buf[i])”输出有像 ffffff8c 这样的奇怪内容?如何打印buf的真实内容?
bin_data_file:
0000000 0403 0007 0000 4000 0440 0670 0a8c 0000
0000010 0003 0a00 4946 494e 4153 2052 4f43 5052
0000020 202e 2020 0000 6590 5446 464c 3538 3932
0000030 3350 4e42 2d56 3545 3141 2020 5203 a900
0000040 3a00 0000 5155 3036 3030 2048 2020 2020
0000050 2020 2020 3331 3830 3430 2020 fa68 e505
0000060 0000 0000 0000 0000 0000 0000 0000 0000
*
0000100 005d 00f6 005c 00f8 8890 546f a08c 3c73
0000110 7017 f401 7616 e803 1027 eb04 071f 3106
0000120 e93d c800 2d31 3c01 0000 0000 0000 0000
0000130 0000 0000 0000 0000 0000 0000 0000 0000
0000140 0000 0000 803f 0000 0000 0000 0001 0000
0000150 0001 0000 0001 0000 0001 0000 0000 1f00
0000160 061e 9c81 d70f bf1a 2822 0000 0000 0030
0000170 0000 0000 0000 0000 ffff ffff ffff 01ff
0000180 0040 0078 0b78 3130 2d39 3730 2d38 3430
0000190 0335 3041 0f31 3030 3030 3030 3030 3030
00001a0 3030 3030 0030 0000 0000 0000 0000 0000
00001b0 0000 0000 0000 0000 0000 0000 0000 0000
*
00001f0 0000 0000 6d67 5853 0000 0000 0000 451a
0000200
//read bin file
FILE *fp_read = fopen("bin_data_file", "rb");
if (fp_read == NULL)
printf("failed to open file.");
char *buf = malloc(512);
memset(buf, 0 , 512);
int ret = fread(buf, 1, 512, fp_read);
for(i = 0; i<512;i++) {
printf("buf is %02x\n", buf[i]); //has issue??
}
fclose(fp_read);
输出:
03 04 07 00 00 00 00 40 40 04 70 06 ffffff8c 0a 00 00 03 00 00 0a 46 49 4e 49 53 41 52 20 43 4f 52 50 2e 20 20 20 00 00 ffffff90 65 46 54 4c 46 38 35 32 39 50 33 42 4e 56 2d 45 35 41 31 20 20 03 52 00 ffffffa9 00 3a 00 00 55 51 36 30 30 30 48 20 20 20 20 20 20 20 20 20 31 33 30 38 30 34 20 20 68 fffffffa 05 ffffffe5 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5d 00 fffffff6 00 5c 00 fffffff8 00 ffffff90 ffffff88 6f 54 ffffff8c ffffffa0 73 3c 17 70 01 fffffff4 16 76 03 ffffffe8 27 10 04 ffffffeb 1f 07 06 31 3d ffffffe9 00 ffffffc8 31 2d 01 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3f ffffff80 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 00 00 00 1f 1e 06 ffffff81 ffffff9c 0f ffffffd7 1a ffffffbf 22 28 00 00 00 00 30 00 00 00 00 00 00 00 00 00 ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 01 40 00 78 00 78 0b 30 31 39 2d 30 37 38 2d 30 34 35 03 41 30 31 0f 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 67 6d 53 58 00 00 00 00 00 00 1a 45
最佳答案
问题是转换 之一。更具体地说是关于 implicit conversions在调用可变参数函数(如 printf
)时生成。
发生的情况是小于 int
的类型的值将是 promoted到 int
。对于有符号类型(char
可能是),编译器将进行符号扩展,因此负值保持为负数。
您看到的是在 two's complement 上发生此类转换的结果系统。
要阻止它发生,请改用显式 unsigned
类型,例如 fixed width integer type uint8_t
.
关于c - 如何打印二进制文件的真实内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52906691/
我正在寻找x86 Assembly中pow(real, real)的实现。我也想了解算法的工作原理。 最佳答案 只需将其计算为2^(y*log2(x))即可。 有一个x86指令FYL2X计算y *
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
风格指南的最后一点 http://www.python.org/dev/peps/pep-0008 读... 不要使用 == 将 bool 值与 True 或 False 进行比较。 为什么? 编辑只
我似乎无法完成这件事。我仍然在我的日志中看到 cloudflare IP。目前,我有一个负载均衡器,它位于 Cloudflare 后面。 目前,这是与 forwardfor 相关的块: opt
此代码行选择任何类名不是“id”和“quantity”的 div 内的所有子输入:: $("div.item > div:not(.id,.quantity) > :input").live("key
我在测试真实产品时遇到错误。当我单击购买按钮时,出现错误“此版本的应用程序未配置为市场计费”。 我用这个例子https://github.com/robotmedia/AndroidBillingLi
到目前为止我能找到的所有答案都建议调用 omp_set_num_threads。虽然在大多数情况下这是一个正确的答案,但它对我不起作用。在内部,调用 omp_set_num_threads 会导致创建
假设我有 3 个显示器。如何仅通过其索引获取第二个句柄? EnumDisplayMonitors() 不会工作,因为它也枚举了伪设备,而 EnumDisplayDevices() 没有给我句柄。 最佳
我一直在尝试制作一个简单的小游戏来测试我的逻辑,这是一个简单的迷宫,它很丑,而且到目前为止很糟糕。 引擎工作得很好,考虑到迷宫已经存在(矩阵),它甚至可以愉快,但我无意绘制一堆 map ,这可能是在
Cloudflare 代理包含一个名为 CF-Connecting-IP 的 header 和用户的真实 IP。我想让 traefik 读取这个 header 并用它的内容创建一个 X-Real-Ip
我想要上下文菜单中的不同菜单项,具体取决于我在 JTable 中单击的行 大多数示例并没有真正显示上下文菜单(应该根据上下文 - 所选行进行填充) 我尝试过这个: popupMenu = ne
我有一个对象 callInst。如何获取函数的真实名称而不是 IR 代码中的名称?如果我在我的通行证中运行此代码(Useless 在另一个问题中发布) StringRef get_function_n
我在 Appium 和 iPad 2 上使用了以下所需的功能 DesiredCapabilities capabilities = new DesiredCapabilities(); capabil
根据documentation 我们可以通过以下方式在模拟器上运行我们的 android 项目: cordova 运行 android 或 cordova emulate android 但是如何在真
在 ASP.NET 中,有没有办法获得真正的原始 URL? 例如,如果用户浏览到“http://example.com/mypage.aspx/%2F”,我希望能够获得“http://example.
我的 NSInputStream 遇到问题。这是我的代码: case NSStreamEventHasBytesAvailable: printf("BYTE AVAILABLE\n"
$(selector).click() 结果没有任何反应。 this answer在浏览器控制台中工作,javascript 上下文设置为 iframe,但不是主页: simulateMouseCli
我在我的 AB Micro820 PLC 中设置了 modbus 映射。我在 40001 中有一个数组用于写入,在 42001 中有一个数组用于读取。两者都是 200 个元素和 REAL 类型(32
我正在寻找有关设计契约(Contract)管理数据模型的建议。因此,合约的一般生命周期是: 契约(Contract)已创建并处于“草稿”状态。它可以在内部查看,并且可以进行更改。 契约(Contrac
我正在尝试让我的 WebView fullscreen 达到标准,我知道如何将它拉伸(stretch)到“全屏”,但我想做的是当您长按 WebView 并选择全屏选项时,创建全屏。有谁知道该怎么做?
我是一名优秀的程序员,十分优秀!