请问这张C语言的PPT里面的短数据长变量的赋值我不懂,谁帮我看下?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问这张C语言的PPT里面的短数据长变量的赋值我不懂,谁帮我看下?相关的知识,希望对你有一定的参考价值。
为什么i= - 2??
参考技术A 牵涉到计算机中关于补位的问题。PPT中解释的很清楚了,将短类型的数据赋值给长数据类型的时候是根据这个数据在计算机中的表示的最高位来补位的,最高位是0,则补0,最高位是1,则补1. 在C中,char是一个字节(8位) int是两个字节(16位) long是四个字节(32位),这里是一般情况,好像后来有些C编译器改双倍了。那么在你将一个char 赋值 给 int 时,计算机中就根据这个 char变量在计算机中的存储方式给他补上高位的数字,然后转成相应的int值。char(43)是字符‘+’,ASCII值43,计算机存储为 00101011,转为int时按补位规则就存储为 0000000000101011 ,然后打印出来的时候把这个二进制值转为十进制(d%格式), 而‘\376’ 是八进制表示法,换成计算机二进制存储是 11111110,补位规则给他补上1,变成 1111111111111110 而这个数字在int型中表示负数,负数用补码存储,读取出来的时候要转成原码,然后换成相应的int数。int型 最高位 1 表示负数,0表示正数,而char没有负数的,他都是正数,所以最高位不代表符号 参考技术B 右边的说明很清楚。可能您没有理解计算机中有符号数的表示方法。计算机中都是用补码表示数据的 2的原码 0000 0010 正数的原码反码补码相同-2的原码 1000 0010 正数原码符号位取反-2的反码 1111 1101 原码除符号位取反-2的补码 1111 1110 反码 加 1看完这个您再想想知道i = 2的理由了吗 参考技术C 图中解释得很清楚啊C语言里怎样理解长整型 短整型 和无符号型变量和常量?
长整型 短整型 和无符号型跟基本整形 我就知道所占字节不同
但是长整型 短整型怎样理解?它们跟基本整形有什么区别?
还有无符号怎么理解 怎么表示 用什么进制 ?
我真的不大懂
有哪位好心的愿意帮帮我 我qq277620691谢谢
2、常量:指的是不会被修改的量,这个概念实际上来自汇编语言中的立即数概念,它是存储于指令代码中的。
3、整型:用于描述整数的数据类型。
4、长整型、 短整型 、无符号整型,主要是通过整数的符号以及所占内存字节的大小来区分的,做为整数可以分为正数和负数,因此C语言中有了无符号数和有符号数的区别,无符号整型,最小值是0,最大值为2^n-1,n是在内存中类型所占的字节数。 一般来说,int类型占4个字节,short短整型占2个字节,long长整型占4或者8个字节。具体所占字节的大小可以通过sizeof运算符来获取。 参考技术A
进制一般来说都是10进制,下面以10进制为例。
不同整型可以表示的范围不同,可以根据实际需要选择不同的整形。
各种整形的范围请参见下表。
至于原理就涉及到二进制等知识了,初学C语言没必要深究,一般整形只用int类型就足够了。
如下网址可以搜到“C语言数据类型”相关课件。
http://www.baidu.com/s?wd=C%E8%AF%AD%E8%A8%80+%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B+filetype%3Appt&tn=site888_1_pg&cl=3&ie=utf-8
参考技术B 但是长整型 短整型怎样理解?它们跟基本整形有什么区别?short int <= int <= long int
定义这三种是为了节约存储空间
在保证数据不溢出的情况下选择需要空间最短的
unsign int 是在都为正数的情况下节约存储空间而定义的
都是2进制储存在内存中本回答被提问者采纳 参考技术C 因为字节数不同,所以能表示的数的范围就不一样了啊.
无符号就是不把最高位看成符号位.比如11111111,有符号数是把最高位的1看成符号位,表示负数,11111111就表示-1.无符号数则把最高位的1也看成是数的一部分,1111111就表示65535. 参考技术D 无符号和有符号的区别就是存数据时有符号的数据在存储单元留出一位保留符号。而无符号的则不用留出一位来保留符号,所以无符号的数据存贮的最大位数比有符号的大一位所以其相当于左移一位,也就是通常看到的无符号的数据的取值范围是有符号的数的2倍。
以上是关于请问这张C语言的PPT里面的短数据长变量的赋值我不懂,谁帮我看下?的主要内容,如果未能解决你的问题,请参考以下文章