1字节不是一定是8位。
结论写在前面
sizeof返回的是以字节(byte)为单位的大小,char的大小永远都是1字节。
字节通常情况下为8位,但是不是必然,也可能是别的大小,比如TI的28x系列DSP里 一个字节的大小为16位。
事情经给
前段时间,发现一个没见过的事情,TI的28x系列DSP中,一个char占据的空间是16位的,但是sizeof(char)的返回值是1。
一开始没注意,后来在程序里读文件,发现读到的值和预期的效果有差异,调试看内存发现从文件读进的一个连续的char的数组,竟然是16位16位占空间的。给char的变量赋值0xFFFF也可以正常的赋值,内存里显示的变量内容就是0xFFFF。于是我认为这个char大小就是16位。
就把这个现象微信群里和朋友说了下,朋友死活不信,认为char就是八位。只不过编译器为了运算效率,内存存储优化成了16字节。哪怕内存监视的时候显示是16位,但用的时候只能按照8位用。
双方僵持不下,当时DSP这块板子也不在身边,没办法talk is less, show me the code。
于是开始翻C89的规范。
里面很明确的提到了sizeof返回的是以byte为单位的大小,而且sizeof(char)的返回值必然为1,也就是1byte。
当时我的认知一直认为一个byte就是8位,所以感觉,这里的c标准在自相矛盾,怀疑是这句子里存在着我不懂的语法,导致我的理解问题有问题(后来证明我想太多)。
后来接着搜各种关键词,搜到了一份28x系列的编译器用户指南,
Note这一段讲的非常清楚。这个系列的Byte大小是16位的。又去搜了下Byte这个词条,发现Wiki上也没有说Byte一定是八位的。
所以问题解决,结论见上。
1字节不是一定是8位。相关推荐
- 1KB (Kilobyte 千字节)=1024B=8192b【大B代表Byte字节,小b代表bit位】
PS: 1M能存放多少给字母?在计算机中有多少位? A:计算机的实际存储中,是以簇(每个分配单元)为单位,也就是说占用空间>=实际大小.例如,我的C盘,每个分配单元中有 4096 字节(可以cm ...
- 最直白详细:“1字节(byte)”等于多少“位(bit)”
1byte等于8bit.数据存储是以"字节"(Byte)为单位,数据传输大多是以"位"(bit)为单位,一个位就代表一个0或1(即二进制),每8个位(bit)组 ...
- java字节对齐 32 64_【C语言】字节对齐问题(以32位系统为例)
1. 什么是对齐? 现代计算机中内存空间都是按照字节(byte)划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型 ...
- 【C语言】字节对齐问题(以32位系统为例)
1. 什么是对齐? 现代计算机中内存空间都是按照字节(byte)划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型 ...
- c语言 字节 半字 字,PLC的位,半字节,字节,字介绍
PLC采用五种数据类型来形成不同的指示.下面是数据类型的解释. 打开今日头条,查看更多精彩图片 位,半字节,字节,字与双字之间的关系如下 二进制,八进制,十进制,BCD,十六进制 DVP-PLC内部依 ...
- 字节,比特,字符,位,单位换算
字节(Byte): 一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间. 英文标点2占一个字节,中文标点占两个字节. 1字节(Byte) = 8位(bit) 比特(Bit) ...
- c语言 字节某位取反 amp;=,C语言位运算
C语言里位运算就是对一个比特(Bit)进行操作,比特(Bit)是计算机的一个电子元件,只有通电和断电两种状态(这也是为什么计算机会采用二进制进行运算,1代表通电,0代表不通电),8个比特构成一个字节( ...
- c 语言测量字节数,用C/C++测试编译器中关键字占多少个字节?以及16/32/64位平台下的字节数...
转自这位大佬:https://blog.csdn.net/cherrydreamsover/article/details/81410364 https://blog.csdn.net/cherryd ...
- 字节转换比特位c语言,C语言实现双字节在数组中按比特位移动
先说一下应用场合,在LED点阵显示屏中,为了节省flash空间,常用一个bit位来标记哪个灯是否点亮.为了做出比较炫的效果,比如16 * 16像素gif动画边边移动边跳跃.就应用到该思想. 双字节是1 ...
最新文章
- OpenCV 【十八】图像平滑处理/腐蚀与膨胀(Eroding and Dilating)/开闭运算,形态梯度,顶帽,黑帽运算
- windows命令行下访问linux,Windows支持直接访问Linux子系统文件:你的下一台Linux何必是Linux...
- 隐马尔可夫模型维特比算法与前向算法区别
- R语言文件下载:谁来帮我把这个128个音频下载一下
- ML激活函数使用法则
- Qt中ui文件的使用
- Notepad++远程连接Linux系统
- 引入我们全新的YouTube频道进行视频课程编程
- vc中提取curve
- Meteor的工作原理及优势与不足
- mysql commit undo_详细分析MySQL事务日志(redo log和undo log)
- 深度报告 | 4G应用启示录与5G应用展望
- 教你用PHP爬取王者荣耀英雄皮肤高清壁纸(附源码)
- Python视觉深度学习系列教程 第三卷 第9章 Kaggle竞赛:情绪识别
- loadrunner入门教程(14)--检查点
- 【centos-16】专业的原理图
- 程序生成随机双色球号码~golang
- 浙大互联网协会(INA)2020~2021学年纳新启动!
- 从7个方面看人工智能的失败
- Python单重循环练习题