C语言编程能力是否足够应对复杂的长尾词处理需求?

2026-04-11 22:211阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1265个文字,预计阅读时间需要6分钟。

C语言编程能力是否足够应对复杂的长尾词处理需求?

1. 数据类型及占用内存大小(32位机): - int:整型,4个字节 - char:字符型,1个字节 - float:单精度浮点型,4个字节 - double:双精度浮点型,8个字节 - long:长整型,4个字节

C语言编程能力是否足够应对复杂的长尾词处理需求?

1. 数据类型 按照数据在内存中所占的大小(32位机) 一般有如下划分 int 整型 4个字节 char 字符型 1个字节 float 单精度浮点型 4个字节 double 双精度浮点型 8个字节 long 长整型 4个字节 short 短整型 2个字节 ... 按照数据有无符号位的划分 有可以分为 : signed int : 有符号整型 unsigned int : 无符号的整型 ... 进制之间的转换: 十进制数 15 -》 十六进制数 ? 1111 0xf 十六进制的1位 对应二进制的4位 八进制的1位 对应二进制的3位 例: 10进制数 253 --》 16进制 ? 253 = 256 - 1 - 2 256: 1 0000 0000 255: 1111 1111 253: 1111 1101 十六进制:0xfd //1 2 3 4 5 6 7 8 9 a b c d e f 十进制176换成 八进制 和 十六进制 ? 176 = 128(2^7) + 32(2^5) + 16(2^4) 176 : 10 110 000 十六进制: 0xB0 八进制: 260 整数在计算机中存储形式? 整数在计算机中以补码的形式存放。 正数的补码是其原码本身 原码:二进制 负数的补码是其绝对值的原码 取反 +1 例: 17的补码是多少? 17 = 16(2^4) + 1 00000000 00000000 00000000 00010001 -17的补码是多少? 绝对值17的原码: 00000000 00000000 00000000 00010001 取反 : 11111111 11111111 11111111 11101110 +1 : 11111111 11111111 11111111 11101111 --》 -17的补码 11111111 11111111 11111111 11101111 ? -1:11111111 11111111 11111111 11101110 取反00000000 00000000 00000000 00010001 -17 2. 运算符与表达式 = : 赋值 == : “等于” + - * / % : 5/3 = 1 6.0/3 = 2.0 逻辑运算符: && :两者都为真 结果才为真 || :只要有一个为真 结果就为真 ! : 结果取反 在C语言中 什么代表真 什么代表假? 非0代表真 0代表假 printf("%d\n", 5&&-1); //1 printf("%d\n", 5&&0); //0 位运算符: 他的操作的对象是bit位。 & : 按位与 | :按位或 ~ :按位取反 ^ :异或 “求异” 不同为1 相同为0 << :按位左移 >> :按位右移 例: 5 & 6 ? 位运算符计算前 先把操作的数都化成二进制 然后对相对应的bit位进行操作 5: 00000101 6: 00000110 ———————————————— & 00000100 == 4 练习: 求: 5 | 6 7 ~(5 | 17) -22 7 ^ 10 13 3 >> 1 1 1 << 4 16 ~(5 | 17) -22 5: 00000000 00000000 00000000 00000101 17: 00000000 00000000 00000000 00010001 ___________________________________________ | : 00000000 00000000 00000000 00010101 ~ : 11111111 11111111 11111111 11101010 -1: 11111111 11111111 11111111 11101001 取反00000000 00000000 00000000 00010110 16 + 4 + 2 = 22 《==绝对值 自增和自减运算符: ++ : int a = 1; a++; 先用 后加 ++a; 先加 后用 例: int a = 1; printf("%d\n",a++); 1 printf("%d\n",++a); 3 -- : 例: int a = 1; printf("%d\n",a--); 1 printf("%d\n",--a); -1 三目运算符: 格式: a ? b : c 如果a表达式为真 那么整个表达式的值就是b的值 如果a表达式为假 那么整个表达式的值就是c的值 printf("%d\n",1>2?3:4); 3. 假设现有有一个整型变量a 请你将a的第8个bit位取反 其他bit位不变 (位操作) xxxxxxxx xxxxxxxx xxxxxxx0 xxxxxxxx ==> xxxxxxxx xxxxxxxx xxxxxxx1 xxxxxxxx 任何数&上1 结果都是其本身 x = 1 x&1 = 1 x = 0 x&1 = 0 任何数|上0 结果都是其本身 x = 1 x|0 = 1 x = 0 x|0 = 0 任何数^上1 结果都是其本身取反 x = 1 x^1 = 0 x = 0 x^1 = 1 任何数^上0 结果都是其本身 x = 1 x^0 = 1 x = 0 x^0 = 0 xxxxxxxxxxxxxyxxxxxxxx a ^ 0000000000000100000000 2 ^ 8 (1<<8) ———————————————————————————————————— xxxxxxxxxxxxxkxxxxxxxx 3.三大结构 1. 顺序结构 在代码块中的代码都是按照从上到下的顺序执行。 { xxx; yyy; zzz; } 2. 选择/分支结构 if else if else switch - case 3. 循环结构 while for 0. 求所有的水仙花数 水仙花数: 他是一个三位数 满足个位的立方+十位的立方 +百位的立方 的和等于他本身的值的数 int i = 0; for(i=100;i<1000;i++) { //个位 int gewei = i%10; // 123 123%10 = 3 //十位 int shiwei = i/10%10; // 123 123/10%10 = 2 //百位 int baiwei = i/100 ; if( gewei * gewei *gewei + shiwei *shiwei*shiwei +baiwei*baiwei*baiwei == i) { printf("%d\n",i); } } 2.求100-1000之间满足各位数字之和是5的所有数。 int i=0; for(i=100;i<1000;i++) { //个位 int gewei = i%10; // 123 123%10 = 3 //十位 int shiwei = i/10%10; // 123 123/10%10 = 2 //百位 int baiwei = i/100 ; if(gewei + shiwei + baiwei == 5) { printf("%d\n",i); } } 《算经》中提出一个著名的“百钱买百鸡问题”,鸡翁一,值钱5,鸡母一,值钱三,鸡雏三,值钱一, 百元买百鸡,问翁,母,雏各几何? // 5x + 3y + z/3 = 100; // x + y + z = 100; int x ; //鸡翁 int y ; //鸡母 int z ; //鸡雏 for(x=0; x<21 ;x++) { for(y=0;y<34;y++) { for(z=0;z<100;z+=3) { if(x+z+y == 100 && (5*x + 3*y + z/3 == 100 ) ) { printf("x=%d , y=%d , z=%d\n",x,y,z); } } } }

本文共计1265个文字,预计阅读时间需要6分钟。

C语言编程能力是否足够应对复杂的长尾词处理需求?

1. 数据类型及占用内存大小(32位机): - int:整型,4个字节 - char:字符型,1个字节 - float:单精度浮点型,4个字节 - double:双精度浮点型,8个字节 - long:长整型,4个字节

C语言编程能力是否足够应对复杂的长尾词处理需求?

1. 数据类型 按照数据在内存中所占的大小(32位机) 一般有如下划分 int 整型 4个字节 char 字符型 1个字节 float 单精度浮点型 4个字节 double 双精度浮点型 8个字节 long 长整型 4个字节 short 短整型 2个字节 ... 按照数据有无符号位的划分 有可以分为 : signed int : 有符号整型 unsigned int : 无符号的整型 ... 进制之间的转换: 十进制数 15 -》 十六进制数 ? 1111 0xf 十六进制的1位 对应二进制的4位 八进制的1位 对应二进制的3位 例: 10进制数 253 --》 16进制 ? 253 = 256 - 1 - 2 256: 1 0000 0000 255: 1111 1111 253: 1111 1101 十六进制:0xfd //1 2 3 4 5 6 7 8 9 a b c d e f 十进制176换成 八进制 和 十六进制 ? 176 = 128(2^7) + 32(2^5) + 16(2^4) 176 : 10 110 000 十六进制: 0xB0 八进制: 260 整数在计算机中存储形式? 整数在计算机中以补码的形式存放。 正数的补码是其原码本身 原码:二进制 负数的补码是其绝对值的原码 取反 +1 例: 17的补码是多少? 17 = 16(2^4) + 1 00000000 00000000 00000000 00010001 -17的补码是多少? 绝对值17的原码: 00000000 00000000 00000000 00010001 取反 : 11111111 11111111 11111111 11101110 +1 : 11111111 11111111 11111111 11101111 --》 -17的补码 11111111 11111111 11111111 11101111 ? -1:11111111 11111111 11111111 11101110 取反00000000 00000000 00000000 00010001 -17 2. 运算符与表达式 = : 赋值 == : “等于” + - * / % : 5/3 = 1 6.0/3 = 2.0 逻辑运算符: && :两者都为真 结果才为真 || :只要有一个为真 结果就为真 ! : 结果取反 在C语言中 什么代表真 什么代表假? 非0代表真 0代表假 printf("%d\n", 5&&-1); //1 printf("%d\n", 5&&0); //0 位运算符: 他的操作的对象是bit位。 & : 按位与 | :按位或 ~ :按位取反 ^ :异或 “求异” 不同为1 相同为0 << :按位左移 >> :按位右移 例: 5 & 6 ? 位运算符计算前 先把操作的数都化成二进制 然后对相对应的bit位进行操作 5: 00000101 6: 00000110 ———————————————— & 00000100 == 4 练习: 求: 5 | 6 7 ~(5 | 17) -22 7 ^ 10 13 3 >> 1 1 1 << 4 16 ~(5 | 17) -22 5: 00000000 00000000 00000000 00000101 17: 00000000 00000000 00000000 00010001 ___________________________________________ | : 00000000 00000000 00000000 00010101 ~ : 11111111 11111111 11111111 11101010 -1: 11111111 11111111 11111111 11101001 取反00000000 00000000 00000000 00010110 16 + 4 + 2 = 22 《==绝对值 自增和自减运算符: ++ : int a = 1; a++; 先用 后加 ++a; 先加 后用 例: int a = 1; printf("%d\n",a++); 1 printf("%d\n",++a); 3 -- : 例: int a = 1; printf("%d\n",a--); 1 printf("%d\n",--a); -1 三目运算符: 格式: a ? b : c 如果a表达式为真 那么整个表达式的值就是b的值 如果a表达式为假 那么整个表达式的值就是c的值 printf("%d\n",1>2?3:4); 3. 假设现有有一个整型变量a 请你将a的第8个bit位取反 其他bit位不变 (位操作) xxxxxxxx xxxxxxxx xxxxxxx0 xxxxxxxx ==> xxxxxxxx xxxxxxxx xxxxxxx1 xxxxxxxx 任何数&上1 结果都是其本身 x = 1 x&1 = 1 x = 0 x&1 = 0 任何数|上0 结果都是其本身 x = 1 x|0 = 1 x = 0 x|0 = 0 任何数^上1 结果都是其本身取反 x = 1 x^1 = 0 x = 0 x^1 = 1 任何数^上0 结果都是其本身 x = 1 x^0 = 1 x = 0 x^0 = 0 xxxxxxxxxxxxxyxxxxxxxx a ^ 0000000000000100000000 2 ^ 8 (1<<8) ———————————————————————————————————— xxxxxxxxxxxxxkxxxxxxxx 3.三大结构 1. 顺序结构 在代码块中的代码都是按照从上到下的顺序执行。 { xxx; yyy; zzz; } 2. 选择/分支结构 if else if else switch - case 3. 循环结构 while for 0. 求所有的水仙花数 水仙花数: 他是一个三位数 满足个位的立方+十位的立方 +百位的立方 的和等于他本身的值的数 int i = 0; for(i=100;i<1000;i++) { //个位 int gewei = i%10; // 123 123%10 = 3 //十位 int shiwei = i/10%10; // 123 123/10%10 = 2 //百位 int baiwei = i/100 ; if( gewei * gewei *gewei + shiwei *shiwei*shiwei +baiwei*baiwei*baiwei == i) { printf("%d\n",i); } } 2.求100-1000之间满足各位数字之和是5的所有数。 int i=0; for(i=100;i<1000;i++) { //个位 int gewei = i%10; // 123 123%10 = 3 //十位 int shiwei = i/10%10; // 123 123/10%10 = 2 //百位 int baiwei = i/100 ; if(gewei + shiwei + baiwei == 5) { printf("%d\n",i); } } 《算经》中提出一个著名的“百钱买百鸡问题”,鸡翁一,值钱5,鸡母一,值钱三,鸡雏三,值钱一, 百元买百鸡,问翁,母,雏各几何? // 5x + 3y + z/3 = 100; // x + y + z = 100; int x ; //鸡翁 int y ; //鸡母 int z ; //鸡雏 for(x=0; x<21 ;x++) { for(y=0;y<34;y++) { for(z=0;z<100;z+=3) { if(x+z+y == 100 && (5*x + 3*y + z/3 == 100 ) ) { printf("x=%d , y=%d , z=%d\n",x,y,z); } } } }