c语言字符变量

来源:百度知道 编辑:UC知道 时间:2024/06/08 12:47:38
某些系统中字符变量看最高位决定符号,那么怎么知道最后输出结果为正为负呢?请举例。
假设字符变量为'a',在TURBOC 等系统中,是不是将其转为ASII 代码,然后再转为二进制,由二进制决定是正是负呢,再使用补码什么的

最高位是1就是负数
0就是正数

不怎么清楚你是什么意思
我的理解是把这个字符型变量跟0x80想与
结果为0则说明原来字符最高位为0
不为0再说明原来自字符最高位为1
char c =0x80;
char test;
if(c&test)
//test最高位为1
else
//test最高位为0

有点不懂啊,字符变量怎么又分正负呢,是整数变量吧,高级语言里和汇编一样,数都是占用一定字节的,而且还有正负之分,所以在存储时,高位(BYTE:bit7,WORD:bit15,DWORD:bit31)为1则数为负,为0则为正,所以高级语言里BYTE无符号数为:0-255,而有符号数正数则为0-127,就是这个道理.其它类型类推.

如是在高级语言里,为什么还要去看是正还是负呢,abs函数不就出来了么.如是在汇编里,设该word数在ax中,用and ax,8000结合ZF不就判断出来了么

if(最高位==1)
t=1;/*正数*/
else
t=0;/*负数*/

1楼的对头