c语言一个数字占几个字节

c语言一个数字占几个字节,第1张

一个数字是一个字节

字节的标准定义:每个字节是8位。因为上面提到的每一位不是0就是1,所以一个8位字节包含256种可能的0和1的组合。

根据整数的类型,通常是极长的。例如,一个16位的机器整数是一个16位的位,有两个字节。32位机器是4个字节。还有int64类型的整数。

至于C中的实数,有32位(浮点)和64位(双精度)。在其他语言中,有80位的类型,称为扩展精度实数。主要是cpu中的扩展精度实数寄存器,80位。保证双实数运算不损失精度。

扩展信息:

字符和字节

ASCII码:一个英文字母(不分大小写)占用一个字节的空,一个汉字占用两个字节的空。作为计算机中的数字单位,二进制数字序列通常是8位二进制数字,转换为十进制。最小值为-128,最大值为127。例如,ASCII码是一个字节。

UTF 8编码:一个英文字符等于一个字节,一个中文(包括繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节。

Unicode编码:一个英文等于两个字节,一个中文(包括繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节。

数据以“字节”为单位存储,数据传输多以“比特”(也称“位”)为单位。一位代表一个0或一个1(即二进制),每8位(简写为B)组成一个字节(简写为B),是最小的信息单位。

硬盘以GB(十进制,即10的三次方=1000,如1MB=1000KB)计算,而电脑(操作系统)以GIB(二进制,即2的十次方,如1M = 1024 KB)计算,但国内用户一般理解为1MiB = 1M = 1024 KB,所以为了方便

同样,根据硬盘厂商和用户对1MB大小的不同理解,很多160 GB的硬盘按照实际电脑1MiB = 1024KB计算,实际容量不到160 GB,这也可以解释为什么新买的硬盘没有它标明的那么大。

数据类型

字节数据类型(Byte type)存储在一个字节中,可以区分256位。取值范围是0到255。Byte是从0到255的无符号类型,因此它不能表示负数。参考特定的数据类型。

在计算机中,作为一个整体处理或计算的一串数字被称为计算机字,或简称为字。一个字通常分为几个字节(每个字节通常是8位)。在内存中,每个单元通常存储一个字,所以每个字都是可寻址的。单词的长度是用数字表示的。

在计算机的计算器和控制器中,通常是用文字来传递的。单词出现在不同的地址,有不同的含义。比如发送给控制器的字是指令,而发送给运算器的字是数字。

单词大小

计算机每个字包含的位数叫做字长。根据计算机的不同,字长分为固定字长和可变字长两种。固定字长,即在任何情况下字长都是固定的;可变字长,在一定范围内,其长度是可变的。

计算字长指的是它一次能处理的二进制位数。计算机处理数据的速度自然与它一次能处理的位数和运算速度有关。如果一台计算机的字长是另一台计算机的两倍,即使两台计算机的速度相同,在同样的时间内,前者也能做后者两倍的工作。

一般大型计算机的字长是32-64位,小型计算机是12-32位,微型计算机是4-16位。字长是衡量计算机性能的一个重要因素。

字节

一个字节指的是一小组相邻的二进制数字。通常8位作为一个字节。它是构成信息的一个小单元,作为一个整体参与操作。它比一个词小,是构成一个词的单位。

在微型计算机中,通常用多少字节来表示存储器的存储容量?

比如在C++的数据类型表示中,char通常是1字节,int是4字节,double是8字节。

编码的关键是准确理解字符和字节的概念。这两个概念很容易混淆,所以我们在这里做个区分:

概念描述示例

人们使用的符号,抽象意义上的符号。1 ','中','一',' $ ','¥'...

字节计算机中数据存储的单位,一个8位二进制数,是一个非常具体的存储室空。0x01、0x45、0xFA……

字符串

在内存中,如果“字符”以ANSI编码形式存在,一个字符可能用一个字节或多个字节来表示,那么我们把这个字符串称为ANSI字符串或多字节字符串。比如“中文123”(8个字节,包含一个隐藏的[30])。

字符集

ANSI编码有不同的字符集。相同的字节序列代表不同字符集中的不同字符。要正确解析一个ANSI字符串,还需要选择正确的字符集,否则可能会导致所谓的乱码现象。不同语言版本的操作系统都有默认的字符集。

如果不指定字符集,系统将使用该字符集来解析ANSI字符串。也就是说,如果我们在简体中文版Windows下打开日文操作系统保存的一个ANSI文本文件(只包含ANSI字符串的文本文件),看到的会是乱码。

但是,如果我们使用带有编码选择的文本编辑器(如Visual Studio)打开该文件,并选择正确的字符集,我们将能够看到它的原始外观。注:简体中文字符集的繁体字和繁体中文字符集的繁体字不一定编码相同(事实证明,好像完全不同)。

每个字符集都有一个唯一的编号,称为代码页。简体中文(GB2312)的代码页是936,而系统默认字符集的代码页是0,这意味着要根据系统的语言设置选择合适的字符集。

统一码

在字符串内存中,如果“字符”以Unicode中的序列号存在,那么我们称这个字符串为Unicode字符串或宽字节字符串。在Unicode中,每个字符占用两个字节。比如“中文123”(10字节)。

Unicode和ANSI的区别相当于输入法中“全角”和“半角”的区别。

因为不同ANSI码规定的标准不一样(字符集不一样),对于给定的多字节字符串,我们必须知道它采用的是哪个字符集,才能知道它包含哪些“字符”。

至于Unicode字符串,无论在什么环境下,它所代表的“字符”的内容总是相同的。Unicode有一个统一的标准,定义了世界上大部分字符的编码,以至于拉丁文、数字、简体中文、繁体中文、日文等。可以以相同的编码模式存储。

欢迎分享,转载请注明来源:聚客百科

原文地址: https://juke.outofmemory.cn/life/614193.html

()
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-07-06
下一篇 2022-07-06

发表评论

登录后才能评论

评论列表(0条)

保存