爱问知识人 爱问教育 医院库

C语言的转化问题

首页

C语言的转化问题

把-2转化成无符号的十进制数,怎么转化?

提交回答
好评回答
  • 2019-03-11 00:00:35
    负数在内存中的二进制是绝对值的二进制取反加1。
    2   :0000 0000 0000 0010
    取反:1111 1111 1111 1101
    加1 :1111 1111 1111 1110
    则,-2在内存中的存放形式是1111 1111 1111 1110。
    而且,有符号基本整型数的16位中,最左边第一位是符号位,0为正,1为负。这个结果也符合这个规律。
    对于无符号数,左边第一位就是数据的第一位。
    1111 1111 1111 1110的十进制计算式是2的15次方加2的14次方……一直加到2的1次方。也相当于无符号整型的最大值减1,那就是2的16次方减1再减1,就是65535-1,即65534

    李***

    2019-03-11 00:00:35

其他答案

    2019-03-11 00:07:25
  • 和楼上的差不多,关键是你想要那种整型,长整型(long),整型(int),还是短整型(short), -2转换成unsigned 之后,会上溢出,之后得到的就是对应的值
    至于char 那个是字符.....

    L***

    2019-03-11 00:07:25

  • 2019-03-10 23:48:06
  • 这个问题可得小心。关键是怎么定义整数的。
    比如unsigned char a = (unsigned char)-2;
    和unsigned short a = (unsigned short)-2;
    和unsigned long a = (unsigned long)-2;
    和...
    都大不一样,只有中间那个是65534,第一个是254,最后那个更大。

    A***

    2019-03-10 23:48:06

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 171-190
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):