首页 > C语言中整型在计算机中的存储

C语言中整型在计算机中的存储

一 . 整型的表示

      1.字面值后面加上L(l)表示long长整型

      2.字面值后面加上U(u)表示usigned整型值

      3.十进制123  ...

      4.八进制,以0开头,如0123,0754  ...

      5.十六进制,以0x开头,如0xF32  ...

二 .整型的分类和表示范围

    char型,前一篇文章已经说过,在此不再熬述

    int :是有符号还是无符号的整型,在不同的编译器中不同,这里统一把它视为有符号的整型进行讨论

             不论在32位还是64位机器中均是4个字节(32个bit位),所以其最高位表示符号位(0正1负),剩下的31个位表示数据位,取值范围是-2147 483 648-2147 483 647(-2^31---2^31-1)。在《字符型在计算机中的存储》中讲到正0和负0,这里也不再熬述。

    signed int :4个字节,和int一样

    unsigned int :4个字节,32个bit位全部为数据位,表示的范围是0---2^32-1

    short 和unsigned short:32位机器和64位机器中均为2个字节,用同样的方法可以表示取值范围

    long 和 unsigned long:32位机器中位4个字节,64位机器中位8个字节

    long long 和unsigned long long :32位机器中为8个字节,64位机器中为8个字节

三 . 整型的存储和读取

    1.整型存储:整型在计算机中是以补码的形式存储的,当计算机遇到一个十进制整型数字时,首先将其转化成二进制(原码),接着最高位不变,其余位按位取反(反码),然后再加1(补码)。而正数的原码反码补码相同

    2.整型读取:首先会根据读取要求,如果要求读取无符号数,因为无符号数是非负的,则直接将数据当成原码,把它转化成十进制整数。

       如果要求读取有符号数,则首先将得到的数据(补码)减去1,得到反码,然后最高位不变,其余位按位取反,得到原码,再将其转化成十进制输出。





更多相关:

  • pcl_common库包含大多数PCL库使用的公共数据结构和方法。核心数据结构包括PointCloud类和许多用于表示点、表面法线、RGB颜色值、特征描述符等的点类型。它还包含许多用于计算距离/范数、均值和协方差、角度转换、几何变换,等等。这个模块是不依赖其他模块的,所以是可以单独编译成功,单独编译出来可利用其中的数据结构自行开发,当...

  • 一. 字符型的分类和表示范围        char:是有符号还是无符号数视编译器而定,一般为有符号数,下文把它全部当成有符号数进行讨论                    表示范围:32位和64位机器上均是一个字节,所以是八个bit位,最高位为符号位之后,后七位是数据位,所以它的取值范围是-128---127(-2^7---2...

  • 第五章 [BX]和loop 1.内存单元间接表示: [bx] mov  dl, [0];  dl  ←  ((ds)×16 + 0) mov  bx, 0 mov  dl, [bx];  dl  ←  ((ds)×16 + (bx)) 可以使用bx间接访问内存单元。默认,段地址在ds。   2.loop指令 (1) 语法格式    ...

  • 1. Container Bootstrap中容器类提供了2个类标识:container、container-fluid。 两者的区别在于:container:容器不止有15px的padding,还有一个随着浏览器宽度变化而变化的margin。container-fluid:只有固定的15px的padding。 因此,containe...

  • Servlet API: javax.servlet.http.HttpServletResponse 用于创建HTTP响应,包括HTTP协议的状态行、响应头以及消息体 HTTP状态码: 100-199:表示信息性代码,标示客户端应该采取的其他动作,请求正在进行。 200-299:表示客户请求成功。 300-399:表示用于已经移走的...

  • 字节串bytes字节串也叫字节序列,是不可变的序列,存储以字节为单位的数据字节串表示方法:b"ABCD"b"x41x42"...字节串的构造函数:bytes() 创建一个空的字节串 ,同b””bytes(整数可迭代对象) 用可迭代对象创建一个字节串bytes(整数n) 生成n个值为0的字节串bytes(字符串,encoding='...

  • Unicode编码  最初的unicode编码是固定长度的,16位,也就是2两个字节代表一个字符,这样一共可以表示65536个字符。显然,这样要表示各种语言中所有的字符是远远不够的。Unicode4.0规范考虑到了这种情况,定义了一组附加字符编码,附加字符编码采用2个16位来表示,这样最多可以定义1048576个附加字符。所以4个字节...

  • Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54894451 本文出自【赵彦军的博客】 InputStream |__FilterInputSt...

  •   一直对编码这块晕晕乎乎,今天终于看到一篇写的很清楚也很风趣的文章,转过来mark一下。 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为”字节“。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始...

  • 我们知道在由于大端机和小端机导致网络字节序和主机序有可能是有差异的,我们可以使用系统的ntohs,ntohl,htons和htonl这些处理函数进行转换,下面是我写的一个关于ntohs在处理小端机字节序转换的函数的简单实现. 思想大致如下: 用u_int16_t的2字节16位的整形变量来存储这个整数,首先将第一个字节和该变量进行或运算...