找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

C语言长整型变量带负号如何处理?

查看数: 1525 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-5-11 19:14

正文摘要:

这份说明书里面的带正负号的长整型变量 0XFF FF FF 7C  是怎么转换出-13.1来的? 还有在处理数据长整型这段程序里只能处理正的数,无法处理负数,是什么原因呢?float变量处理没问题,一到long int 就完 ...

回复

ID:832450 发表于 2022-5-12 07:10
Hephaestus 发表于 2022-5-11 21:07
单位是0.1m3不就理解了吗?FFFFFF7C是-132,对应-13.2m3,至于为什么差1,那是写文档的伙计不懂。

明白了,非常感谢
ID:832450 发表于 2022-5-12 07:10
Y_G_G 发表于 2022-5-11 20:56
是补码就是把按位取反再+1

谢谢,明白了 我把补码这茬给忘记了
ID:401564 发表于 2022-5-11 21:47
0XFF FF FF 7C就是补码呀
补码运算就是取反再+1
结果就是132的二进制,单位0.1,结果应该是13.2
因为是负的,那就是-13.2
为什么是-13.1,那就不知道了
ID:883242 发表于 2022-5-11 21:28
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdint.h>

  4. int main(int argc, char *argv[]) {
  5.         int32_t i,j=-987654321;
  6.         int8_t asc[10]="         ";
  7.         asc[0]=j>0?'+':'-';
  8.         for(i=9;j;i--){
  9.                 asc[i]=(j>0?j%10:-j%10)+'0';
  10.                 j/=10;
  11.         }
  12.         printf("\r\n%s",asc);
  13.         return 0;
  14. }
复制代码
ID:883242 发表于 2022-5-11 21:07
单位是0.1m3不就理解了吗?FFFFFF7C是-132,对应-13.2m3,至于为什么差1,那是写文档的伙计不懂。
ID:401564 发表于 2022-5-11 20:56
是补码就是把按位取反再+1

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表