第一次发帖,
这是为什么?
- [root@localhost ~]# if ((a<70));then printf "%d\n" "'a"; fi
- 97
- [root@localhost ~]# if ((a>70));then printf "%d\n" "'a"; fi
- [root@localhost ~]#
这是为什么?
0
首先感谢阿铭老师的回答,我是第一次在这里发帖,搞不清楚猿课底下提问和这里的区别,今天才看见老师给别的同学回复的一段话:在猿课底下提问的,在这也提问的话,就在猿课底下做个连接。再回答阿铭老师,我知道这个命令没问题,是可以成功执行,但我有一点想不通,if 的判断条件 a < 70,然后打印 a 的Ascii码值,它就有输出,但是a > 70 的时候,他就没输出了啊! 这是反的。a < 70,输出97;a > 70 ,就不输出了。请大家看清楚判断的条件。还有三楼的同学,我知道a是97,我都在脚本的输出看见了。@三楼。还有四楼的同学,我觉得你对待学习很认真,学分排行你总是在前面,也很感谢你来这里回答,关于你的回答,我还有点小疑问,我是在哪指定十进制的?
出现这个问题,是我当初在网上找如何显示字符ASCII码时,随便写了脚本,然后我就很郁闷。@四楼、@ maria,不知道你能不能看见。我在贴些代码:
出现这个问题,是我当初在网上找如何显示字符ASCII码时,随便写了脚本,然后我就很郁闷。@四楼、@ maria,不知道你能不能看见。我在贴些代码:
- [root@web9 sbin]# if ((a<70));then printf "%d\n" "'a"; fi
- 97
- [root@web9 sbin]# if ((a>70));then printf "%d\n" "'a"; fi
- [root@web9 sbin]# echo $a
- [root@web9 sbin]# echo a
- a
0
本帖最后由 maria 于 2016-8-21 11:05 编辑
{:4_93:}因为你之前并没有赋值变量a,也就是a是空值。所以你a<70的时候有输出,而a>70的时候没有输出,输出的是你a的ascii码,但是判断的时候用的是这个变量a所指的值。
至于你问我的你在哪指定十进制了。我现在回答你,%d的d就是接受整数值并将它表示为有符号的十进制整数的意思。顺便给你说下其他进制怎么表示。
看样子你没学过编程,所以说这些你可能有点难理解,还是多少学点编程知识对你的学习会有帮助的。
a_leon 发表于 2016-8-20 00:21
首先感谢阿铭老师的回答,我是第一次在这里发帖,搞不清楚猿课底下提问和这里的区别,今天才看见老师给别的 ...
{:4_93:}因为你之前并没有赋值变量a,也就是a是空值。所以你a<70的时候有输出,而a>70的时候没有输出,输出的是你a的ascii码,但是判断的时候用的是这个变量a所指的值。
至于你问我的你在哪指定十进制了。我现在回答你,%d的d就是接受整数值并将它表示为有符号的十进制整数的意思。顺便给你说下其他进制怎么表示。
o | unsigned int | 无符号8进制整数(不输出前缀0) |
u | unsigned int | 无符号10进制整数 |
x / X | unsigned int | 无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF(不输出前缀0x) |
f(lf) | float(double) | 单精度浮点数用f,双精度浮点数用lf |
e / E | double | 科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写 |
g / G | double | 有效位数,如:%8g表示单精度浮点数保留8位有效数字。双精度用lg |
c | char | 字符型。可以把输入的数字按照ASCII码相应转换为对应的字符 |
0
我终于搞懂了,也就是说a没有赋值时,比较时是空值,就拿这个空值和70比较呢。因为空值小于70,所以会输出。大于70 ,就不输出了,谢谢你
maria 发表于 2016-8-21 10:29
因为你之前并没有赋值变量a,也就是a是空值。所以你a70的时候没有输出,输出的是你a的ascii码, ...
我终于搞懂了,也就是说a没有赋值时,比较时是空值,就拿这个空值和70比较呢。因为空值小于70,所以会输出。大于70 ,就不输出了,谢谢你
编辑回复