C语言中啥是一个8位的整数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中啥是一个8位的整数相关的知识,希望对你有一定的参考价值。
【8位整数】
计算机中存储数据,是以二进制的形式存储(有时也被表示为16进制)。
二进制8位 就是 0000 0000 到 1111 1111 (换算成十进制是 0 ~ 255 )
【无符号 / 有符号 整型】
同时C语言中 整型的最高位 用来表示 符号。
规定当 最高位为 1表示负数。
无符号整型中 附加 unsigned 关键字
无符号8位整数, 0000 0000 ~ 1111 1111 表示 0 ~ 255
有符号整型中 没有附加 unsigned 关键字
有符号8位整数:
0000 0000 ~ 0111 1111 表示 0 ~ 127
1111 1111 ~ 1000 0000 表示 -1 ~ -128
【第一种方法】【 char 表示8位整数 】
C语言 中一般 用 char 表示一个字节(byte)来表示 8位(bit)整数
但是如果 你想自定义 位数 比如 4位整数 7位整数 11位整数等等呢
就需要用到结构体 中可以可以声明 一个类型的实际占用位数。
【第二种方法】【 struct 中自定义类型位数 】
你可以使用 struct 或者 class (C++中使用,可以定义构造函数 或者使用默认构造函数)内部数据成员可以加冒号限定位数。
【 演示说明 】
以下代码演示了 当 有符号整型限定为n时(n小于等于类型最大占用位数) 赋值 2^(n-1) 时,整型变量表示为 一个负数。 说明高位被 设定为 1, 同时证明了 已经分配了 指定位数的 整数。
【 C语言 】中使用 如下所示:
#include <math.h>#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct INT_4
int value :4;
;
struct INT_5
int value :5;
;
void main()
char ch = 128;
struct INT_4 i4 = 8;
struct INT_5 i5 = 16;
//i4.value = 8;
printf("i4 --> %d i5 --> %d \\n", i4.value, i5.value);
printf("char --> %d \\n", ch);
system("pause");;
【 输出结果:】
i4 --> -8 i5 --> -16
char --> -128
请按任意键继续. . .
【 C++ 】中使用 如下所示:
#include <stdio.h>#include <conio.h>
#include <stdlib.h>
struct INT_8
int value :8;
;
class INT_4
public:
INT_4 ( int value = 0 )
this->value = value;
int value :4;
;
int main()
INT_8 i8 = INT_8();
INT_4 i4 = INT_4();
char ch = 128;
i8.value = 128;
i4.value = 8;
printf("i8 --> %d, i4 --> %d \\n", i8.value, i4.value);
printf("char --> %d \\n", ch);
system("pause");;
return 0;
【 输出结果:】
i8 --> -128, i4 --> -8
char --> -128
请按任意键继续. . .
当然这种方式用的不多,尤其是C语言中,不推荐使用这种方式。
C语言往往作为 库或者 驱动开发,需要很好的兼容性。
(不确定标准C 语言 ANSI C标准是否支持该特性。)
【 注:】
以上代码 均在 code::block GNU Mingw gcc 编译器下通过
参考技术A 【8位整数】计算机中存储数据,是以二进制的形式存储(有时也被表示为16进制)。
二进制8位 就是 0000 0000 到 1111 1111 (换算成十进制是 0 ~ 255 )
【无符号 / 有符号 整型】
同时C语言中 整型的最高位 用来表示 符号。
规定当 最高位为 1表示负数。
无符号整型中 附加 unsigned 关键字
无符号8位整数, 0000 0000 ~ 1111 1111 表示 0 ~ 255
有符号整型中 没有附加 unsigned 关键字
有符号8位整数:
0000 0000 ~ 0111 1111 表示 0 ~ 127
1111 1111 ~ 1000 0000 表示 -1 ~ -128 参考技术B char 类型
也就是字符
占有一个字节 参考技术C 可以通过位域来实现.
例如:
struct bs
int a:8;
; 参考技术D char 类型
C语言中啥是逻辑表达式,啥是关系表达式?
逻辑表达式是指运算符为或||、与&&、非!的表达式。
返回值为0或1,0表示false,非0表示true. 例如!0返回1,0&&1返回0,0||1返回1。
关系表达式是指运算符为<,<=,>,>=,==,!=的表达式。
返回值同样为0或1,例如a!=b,a>=0等。
用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子称为逻辑表达式。逻辑表达式的值是一个逻辑值,即"true"或"false"。C语言编译系统在给出逻辑运算结果时,以数字1表示"真",以数字0表示"假",但在判断一个量是否为"真"时,以0表示"假",以非0表示"真"。
可以将逻辑表达式的运算结果(0或1)赋给整型变量或字符型变量。
c语言中,等于是"==",不等于是"!="。
参考技术A 逻辑表达式是指运算符为或||、与&&、非!的表达式。返回值为0或1,0表示false,非0表示true.例如!0返回1,0&&1返回0,0||1返回1。
关系表达式是指运算符为<,<=,>,>=,==,!=的表达式。返回值同样为0或1,例如a!=b,a>=0等。 参考技术B 回答
要理解逻辑表达式。首先要明白什么是逻辑运算符。
1.逻辑运算符及其优先次序 C语言中提供了三种逻辑运算符:&& 与运算|| 或运算! 非运算 与运算符&&和或运算符||均为双目运算符。具有左结合性。非运算符!为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下: !(非)→&&(与)→||(或)
C语言用整数"1"表示"逻辑真"、用"0"表示"逻辑假"。但在判断一个数据的"真"或"假"时,却以0和非0为根据:如果为0,则判定为"逻辑假";如果为非0,则判定为"逻辑真"。例如,假设num=12,则: !num的值=0 ,num>=1 && num31的值=1。


关系表达式用关系运算符将两个数值或数值表达式连接起来的式子关系表达式的值是一个逻辑值,即“真”或“假”在C的逻辑运算中,以“1”代表“真”,以“0”代表“假”
参考技术C逻辑表达式是指运算符为或||、与&&、非!的表达式。返回值为0或1,0表示false,非0表示true。
关系表达式是指运算符为<,<=,>,>=,==,!=的表达式。返回值同样为0或1。
逻辑运算又称布尔运算。布尔用数学方法研究逻辑问题,成功地建立了逻辑演算。他用等式表示判断,把推理看作等式的变换。这种变换的有效性不依赖人们对符号的解释,只依赖于符号的组合规律 。这一逻辑理论人们常称它为布尔代数。20世纪30年代,逻辑代数在电路系统上获得应用,随后,由于电子技术与计算机的发展,出现各种复杂的大系统,它们的变换规律也遵守布尔所揭示的规律。
关系表达式,是用关系运算符将两个表达式连接起来的式子,称。关系表达式的值是逻辑值“真”或“假”。但是C语言没有逻辑型变量和逻辑型常量,也没有专门的逻辑值,故以“非0”代表“真”,以“0”代表“假”。在关系表达式求解时,以“1”代表“真”,以“0”代表假。当关系表达式成立时,表达式的值为1,否则表达式的值为0。
以上是关于C语言中啥是一个8位的整数的主要内容,如果未能解决你的问题,请参考以下文章