200转换成char类型等于-56是怎么运算的
答案:2 悬赏:20 手机版
解决时间 2021-12-02 07:38
- 提问者网友:姑娘长的好罪过
- 2021-12-02 02:43
200转换成char类型等于-56是怎么运算的
最佳答案
- 五星知识达人网友:夜风逐马
- 2021-12-02 03:27
200的二进制数是1100 1000
你这个char类型,假如没有unsigned修饰的话,范围是-128~127
+56是0011 1000,反码1100 0111,
-56是+56的反码加1, 即是 1100 0111 + 1 = 1100 1000
200超出范围了char数值表达的最大范围。所以1100 1000的第一个1是它的符号位,为负。表示的数值就是-56
你这个char类型,假如没有unsigned修饰的话,范围是-128~127
+56是0011 1000,反码1100 0111,
-56是+56的反码加1, 即是 1100 0111 + 1 = 1100 1000
200超出范围了char数值表达的最大范围。所以1100 1000的第一个1是它的符号位,为负。表示的数值就是-56
全部回答
- 1楼网友:北方的南先生
- 2021-12-02 04:29
首先, 你要知道有号数(+, -)跟无号数(+ ~ 0), 在电脑中的定义; 以及电脑二进制计算.
在有号数中, 通常是最高位(bit7, bit15, bit31,...)代表正负,
0 - 正数
1 - 负数.
在C中, 型态没指定有号无号时, 一律以有号数去带.
因此char, 一个byte (8bits), 在有号数中, 只有7bits表示数字, 一个bit表示正负.
200(dec) = 11001000(bin)
其中最高位bit7, 已经成为1了. 此char就是负数, 剩下的7bits就是负多少, 二进制的正负小数的表示及运算, 就让你自己再去研究一下二进制吧.追问这里的11001000是补码吧?那就可行追答补码讲的是一个表示方法, 或是看成正负做反向的过程.
对我来说, 我通常将其视作正负反向的一个操作.
0b0001 (+1) => 0b
在有号数中, 通常是最高位(bit7, bit15, bit31,...)代表正负,
0 - 正数
1 - 负数.
在C中, 型态没指定有号无号时, 一律以有号数去带.
因此char, 一个byte (8bits), 在有号数中, 只有7bits表示数字, 一个bit表示正负.
200(dec) = 11001000(bin)
其中最高位bit7, 已经成为1了. 此char就是负数, 剩下的7bits就是负多少, 二进制的正负小数的表示及运算, 就让你自己再去研究一下二进制吧.追问这里的11001000是补码吧?那就可行追答补码讲的是一个表示方法, 或是看成正负做反向的过程.
对我来说, 我通常将其视作正负反向的一个操作.
0b0001 (+1) => 0b
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯