![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 58
liliuteng
这个作者很懒,什么都没留下…
展开
-
shell脚本中对*的理解
最近看了几行shell代码,初步认识了一下shell的脚本。 网上说*是元字符,不过它代表的不是字符,也不是位置,而是数量——它指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配,这里的任意次包不包括零次呢? 做了个小实验,如下图: 显然对于\w这种字符、数字或者下划线、汉字,如果以\w搜索,最后一行的非\w符号没有被列出来,而如果按\w*搜索,最后一行也被列出来了,这说明*包原创 2012-11-09 09:21:48 · 1209 阅读 · 0 评论 -
寄存器位数会导致取反等操作符号扩展
在《程序员面试宝典》中看到一个经典考题 unsigned char a = 0xa5; unsigned char b = ~a>>4+1; 即b=0x5a>>5,即0x01011010>>5 = 0x00000010,答案理论上是2,但实际运行的时候是250,即0xfa。 原因在于目前的电脑寄存器位数是32位,在做取反操作时,得到的临时结果不是0x5a,而是0xffff ff5a原创 2013-07-05 16:50:17 · 1122 阅读 · 0 评论 -
无符号数带来的一些麻烦
c语言中存在unsigned int等无符号类型,在这些类型给我们在按位运算等操作带来便利的同时,也带了了一些不必要的麻烦,如下: 1. 强制类型转换后不一定是我们需要的结果 2.会造成x 示例代码如下: #include void main() { int x,y; unsigned int ux,uy; x = -1; ux = x; printf("Judg原创 2013-07-07 16:34:05 · 755 阅读 · 0 评论 -
用异或来交换两个变量不一定提高了效率
转自:http://blog.csdn.net/solstice/article/details/5166912 用异或来交换变量是错误的 陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice 翻转一个字符串,例如把 "12345" 变成 "54321",这是一个最简单的不过的编码任务,即便是 C 语言初学者的也能毫不费力地写出类似如转载 2013-07-05 16:25:09 · 1166 阅读 · 0 评论