请问一些关于char类型数据转换成16进制的问题!! 以及移位操作符~ 拜托了~~~~~

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问一些关于char类型数据转换成16进制的问题!! 以及移位操作符~ 拜托了~~~~~相关的知识,希望对你有一定的参考价值。

题目是这样的,给出下面的代码,运行,解释output是怎么得出来的

char c1 = -1, c2 = 0, c3 = 1;
unsigned char c4 = -1;

printf("value in c1, c2, c3 and c4 as HEX are: %x %x %x %x\n", c1, c2, c3, c4);
printf("bitwise or %x\n", c1 | c2);
printf("bitwise or unsigned %x\n", c4 | c2);
printf("bitwise and %x\n", c1 & c2);
printf("%d\n", (~c1) + 1);
printf("%x\n", c3 >> 2);
printf("%x\n", c4 << 2);
printf("%x\n", c1 ^ c4);

c1 ^= c2;
c2 ^= c1;
printf("%x\n", c1);
printf("%x\n", c2);
c1 ^= c2;
printf("%x\n", c1);
c1 >>= 2;
printf("%x\n", c1);
结果是这样的:

value in c1, c2, c3 and c4 as HEX are: ffffffff 0 1 ff
bitwise or ffffffff
bitwise or unsigned ff
bitwise and 0
1
0
3fc
ffffff00
ffffffff
ffffffff
0
0

请问那些ffffffff是怎么回事啊~??!?~~~为什么char类型的-1的十六进制是ffffffff呢? 而unsigned char类型的-1的十六进制是ff呢?! 还有左移位右移位的问题~~ 到底是以多少bit为标准呢? 32位吗?? 谢谢大家麻烦帮我看看吧~~ 老师都没教清楚就让我们做~~ 拜托了~啊啊~~ 能帮到我的可以加分~~
谢谢谢谢!!!!!!!! T___T

参考技术A char c1 = -1, c2 = 0, c3 = 1;
unsigned char c4 = -1;

printf("value in c1, c2, c3 and c4 as HEX are: %x %x %x %x\n", c1, c2, c3, c4);
printf("bitwise or %x\n", c1 | c2);
printf("bitwise or unsigned %x\n", c4 | c2);
printf("bitwise and %x\n", c1 & c2);
printf("%d\n", (~c1) + 1);
printf("%x\n", c3 >> 2);
printf("%x\n", c4 << 2);
printf("%x\n", c1 ^ c4);

c1 ^= c2;
c2 ^= c1;
printf("%x\n", c1);
printf("%x\n", c2);
c1 ^= c2;
printf("%x\n", c1);
c1 >>= 2;
printf("%x\n", c1);
结果是这样的:

value in c1, c2, c3 and c4 as HEX are: ffffffff 0 1 ff
bitwise or ffffffff
bitwise or unsigned ff
bitwise and 0
1
0
3fc
ffffff00
ffffffff
ffffffff
0
0

参考资料:书上

delphi关于stringgrid字符串转换的问题

请教各位大侠,现在想把数据库中的数据导入到stringgrid中,但stringgrid只接受字符类型,而数据库中的数据既有 字符型,也有数值型 或者还有布尔型等多种类型,现在通过一个循环将数据库中的数据导入到stringgrid中,如果不进行类型转换就会报错,请问我应该怎么做?谢谢。

dataset.FieldByName("字段").AsString; 参考技术A 通常的方法是将数据转化成字符后添加到stringgrid
字符和数值直接asstring就可以
布尔型可以转为0和1或者是和否等在添加到stringgrid
参考技术B 自然得进行转换了
数值转字符 布尔型转字符 时间转字符 反正有相应的函数

以上是关于请问一些关于char类型数据转换成16进制的问题!! 以及移位操作符~ 拜托了~~~~~的主要内容,如果未能解决你的问题,请参考以下文章

C++ builder中如何把unsigned char类型转换成16进制的输出

JAVA:string类型转换int(16进制)

mysql如何把16进制转换成中文字符显示

关于c语言float取值范围

请问知道一个jpg的二进制数据指针和数据长度,怎么转换成Mat数据类型?

Arduino关于长整形数据转换成String类型