【C++】题目

unsigned char a = 0xA5;//八进制和十六进制化为二进制(补码形式)
//二进制原码:10100101
//二进制反码:01011010(无符号)
//二进制补码:01011011
//整型提升:00000000 00000000 00000000 01011011
// ~a:    11111111 11111111 11111111 10100100
//~a>>5:  11111111 11111111 11111111 11111101(补码)
//     :  10000000 00000000 00000000 00000010
//原码:10000000 00000000 00000000 00000011
char b = ~a >> 4 + 1;
printf("b=%d\n", b);

.  注意:先+1再右移

	//\_ _ \0 \017 \0
	cout << sizeof("\  \0\017") << endl;//5
	//\x1 r \\ \1 \n \0
	cout << sizeof("\x1r\\\1\n") << endl;//6
	//\\ 0 \" \0 \0
	cout << sizeof("\\0\"\0") << endl;//5

/*
转义字符(1个字节): 1.\字符(例如:\n \t \0 \ \\ \" \[)
                    2.\八进制(最多跟三位八进制 \012 \12 \127 \1)
					3.\十六进制(最多跟两位 \xab \x1a)(x不算1位)(注意x前面没有0)
*/

	//\\ \0 \0
	cout << sizeof("\\\0") << endl;//3
	//\0 x 1 2 \0
	cout << sizeof("\0x12") << endl;//5
	//\01 8 3 \0
	cout << sizeof("\0183") << endl;//4
	//\\ 0 1 2 \0
	cout << sizeof("\\012") << endl;//5

	char ch[4][10] = {
    "/0/x12", "\\018\018", 
		"\x1n\" \01\0" };
	//sizeof(数组名):整个数组的大小
	cout << sizeof(ch) << endl;//40
	cout << sizeof(ch[0]) << endl;//10
	cout << sizeof(ch[1]) << endl;//10
	cout << sizeof(ch[2]) << endl;//10
	cout << sizeof("\\018\018") << endl;//7
	//strlen:求字符串的长度(即空字符前(不包含空字符)的字符数目)
	// / 0 / x 1 2
	cout << strlen(ch[0]) << endl;//strlen("/0/x12")//6
	//"\\018\018":\\ 0 1 8 \01 8
	cout << strlen(ch[
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值