c语言中有关二进制,ascii码和内存的问题

2021-03-10 15:53:24 字数 1735 阅读 6251

1楼:德昂当

电脑中存储都是袭二进制bai,或者说,以字节来du论的话,是16进制数。

zhi键盘输入dao后,被操作系统转成输入字符的ascii码值,放在缓冲区中。(这也是16进制的哦)

你的程序中给变量输入值,全是输入函数做的。

scanf("%c",&a[0]); 它就把缓冲区中的值直接放入a[0]中

scanf("%d",&b); 它就把缓冲区中的几个值 转换合成一个整型值给b

比如 输入 12 缓冲区中是 0x31 0x32 函数把 0x31 00x32转换成 0x0c 给 变量b

别的输入类型也是一样,相应的转换。

别看存储的是 0x0c给 b 你输出时 printf("%d",b) 输出会是 12

输出的是10进制数,这全是函数做的,实际存储都是16进制的。或者说是二进制的。

ascii码表,只是 字符 与 数值 的对应关系表,并不是说ascii码是10进制数。

是以数的大小来说的。不在于是几进制。比如字符 '0' ascii码是 48 也是0x30 只是进制不同,大小 48跟 0x30是相等的。

2楼:手机用户

ascii只有128个

bai从内存的du角度看,1b=8bit;1个bit能储存一个0或1,比如说033上的zhi叹号

编译dao器将十进版制的33转换成二进制

的00100001放入权内存

char占1b,int占4b

33二进制是00100001,289二进制是100100001printf("%c%c\n",c1,c2);时c1是int型,用了%c,所以只取最后的8位(00100001)

既十进制的33,所以把289当成了33

3楼:匿名用户

如果是从键盘输入的话应该也是ascii码,不过要是直接初始化了,应该就是二进制了~个人感觉,没研究过。

关于c语言中ascii码的理解是否正确? 50

4楼:jw木有道理

ascii码其实就是字符在计算机里的数字编码。cpu数据只有0,1,想输出97而且要输入'a'的话需要指定输出格式printf(“%d“)以整数输出。不是特殊字符才用到ascii码,而是所有字符在计算机里都是数字编码。

c语言中关于ascii码值的问题

5楼:

如'\0'表示ctrl+a -- 错。

键值的测定很简单:

int key,key2;

key = getch();

printf("\nkey value = %02x ",key);

if (key == 0) ;

打出来就是 16 进制的 键值。

ctrl+a 键值 0x01

esc 键值 0x1b

f1 键值 0x003b

f2 键值 0x003c

向上箭头 0xe0

.....

6楼:匿名用户

null即0,在c中所有的null都表示的是机器码0,ctrl+a指的是向当前输入一个值为0的asc码,就像按a输入的是一个值为65的asc码一样。

顺便指出,null属于控制字符,是字符串的结尾符,区别于回车符,不再键盘上设置键位。在阅读上我们是通过回车符区别字符串段的,而在程序处理时都是通过null来区别字符串段的。

不知道你是不是问的这个意思,再讨论。

用c语言进行编程,输出字母和他们的ascii码,每行输

1楼 孤舟釣客 include int main return 0 执行结果 a 65 b 66 c 67 d 68 e 69 f 70 g 71 h 72 i 73 j 74 k 75 l 76 m 77 n 78 o 79 p 80 q 81 r 82 s 83 t 84 u 85 v 86 w...

c语言for语句中内嵌if"语句的问题

1楼 匿名用户 为满足要求,可修改 如下 include void main else 在vc6下验证通过,与题目 效果一致,如下图 供参考。 2楼 d任意表达式 请采纳。。。。 c语言高手解答 for 语句中嵌套if 如何执行 3楼 拜朋儿 for else for 语句是循环,if是循环里的语句...

关于switch语句的使用问题,关于C语言问题中switch语句的使用问题

1楼 下海的孤魂 switch结构里少了default语句。 应该如下这样,所有case完成后,最下面加上一个default。 以后请教大家时,出错信息里把行数也拷贝上来,可以更快地看出问题出在 。比如 warning c4060。。。 之前,应该还有出错的行数信息的。 switch int a 1...