原文:C语言中以十六进制输出字符型变量会出现'ffffff"的问题

最近在做一个C的嵌入式项目,发现在C语言中用printf 函数打印字符型变量时,如果想采用 x 的格式将字符型变量值以十六进制形式打印出来,会出现一个小问题,如下: C代码 charbuf buf xbf printf x n n n ,buf 在终端将会显示成:ffffffbf buf x f printf x n n n ,buf 在终端将会显示成: f 为什么buf 不像buf 显示的那样, ...

2016-04-14 21:33 0 1935 推荐指数:

查看详情

C语言: 输出16进制文件出现很多ffffff问题解决办法

最近由于一个小需求,需要输出16进制数到文件中,本以为是一个小小的demo就可以解决,谁知道出现了这么个情况: 冷静分析了一下,但凡最高位是1的情况都会多出这么多fffffff,看来是范围超界了。原来:我用来缓存数据的buffer是char的,16进制数据当然要用unsigned char ...

Tue Mar 08 18:58:00 CST 2022 1 896
C语言中的补码与反码(-1的十六进制ffffffff)

我们先举个例子 1个字节的数字7用二进制表示为 0000 0111,最高位为0(0为正数,1为负数) 反码是将正数的所有位都取反,包括最高位 而负数的二进制表示为补码(反码加1),反码只是过渡阶段 -7 我们由+7来推倒 1字节为例 +7 0000 0111 ==》1111 ...

Thu Aug 10 03:33:00 CST 2017 0 1361
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM