您现在的位置是:爱问
程序开发中,1个字节一定包含8个位吗?C语言操作单个的位有什么技巧吗?
2021-04-16 05:32爱问
简介一个字节多少位,程序开发中,1个字节一定包含8个位吗?C语言操作单个的位有什么技巧吗?:谢邀。1 个字节(Byte)等于 8 个位(bit)似乎已经是程序员间的常识了,很少有人质疑这一点。但是作为C语言程序员:-c语言,程序开发,个位,个字...
。
1 个字节(Byte)等于 8 个位(bit)似乎已经是程序员间的常识了,很少有人质疑这一点。但是作为C语言程序员,我们常常要在不同的硬件平台上做底层开发,应该明白:1个字节等于8个位只是惯例而已,C语言标准并没有定义这一点。
有些编译器并不遵守这个惯例,例如,在 Texas 的 C55x DSP 的平台上,1 个字节等于 16 个位。在这个平台上,各种数据类型占用的位数有些奇怪:
以 long long 为例,在该平台上 long long 之所以等于 40 bit,而不是我们常用的 64 bit,是因为它们的 ALU 是 40 bit 宽,因此编译器规定 long long 为 40 bit 可以降低功耗和提升效率。
C语言操作位
C语言没有类似于 Java 的“垃圾回收”等高级编程语言特性,也不像 python 那样无需显示声明类型就能使用变量,因此在很多人看来,C语言有些“低级”。但是C语言的这些“低级”也是 C语言的优点——使用C语言开发程序,程序员能够准确知道究竟使用了多少资源,以及哪些资源还在内存里,哪些已经被释放。换句话说,C语言程序具备资源的使用确定性。
一个字节一定是8个比特位!
C语言中操作某个位,主要用到以下操作符:
- “位与”:&
- “位或”:|
- “左移右移”:<<,>>
- “位取反”:~
如果想把第n个比特位清零,可执行如下代码:
char data;
data &= ~(1<<n);
如果想把第n个比特位置1,可执行如下代码:
char data;
data |= 1<<n;
一个字节肯定是8比特,人家就是这么定义的,位操作不推荐用位域,采用位操作符最好,为什么?因为可移植性,内存对齐
一个字节就是8bit。
Tags:一个字节多少位c语言,程序开发,个位,个字
上一篇:字节是什么啊?有具体的规定吗?
下一篇:凌晨三点是属于什么时辰?
相关文章
随机图文
-
孩子一哭闹家长就妥协?正确教育孩子很重要,不要盲目
在逛商场的时候,相信大家也会看到有许多不一样的小朋友,比如说有很多的小朋友都会不买玩具誓不罢休,甚至... -
单位打印机冒出条尾巴!女子瑟瑟发抖,蛇怎么进入到办
是很多人都会比较害怕,无论是出现在外面又或者是出现在家中,相信在此时大部分人的心中都会觉得有些恐慌。... -
荔枝2元/斤?真的可以实现荔枝自由吗?,尽情享受
喜欢吃荔枝的一些武汉市民建议,在选购的时候还是应该选择多对比,或许在不经意之间就可以直接捡到一个大便... -
雪莲的遭遇是谁在推动?5毛的冰块雪糕为何被人质疑
有人说应该怎么去看待雪莲雪糕的辟谣,有无数的人都会为雪莲鸣不平,也同样是想要为自己的口袋找一些底气,...