C语言非常道 6.6.3 逐位 & | ^ 三种运算符

这篇具有很好参考价值的文章主要介绍了C语言非常道 6.6.3 逐位 & | ^ 三种运算符。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

/**********************c0608.c*********************/
# include <unistd.h>
# include <fcntl.h>
# include <sys/stat.h>

int main (void)
{
    int fd;
    fd = open ("myfile1.dat", O_CREAT | O_RDWR, S_IRUSR | S_IWUSR);

    if (fd == -1) return -1;

    char name [] = "LiuChangjiang", gender = 'M', age = 36;
    unsigned int score = 2200;

    write (fd, name, strlen (name));
    write (fd, & gender, sizeof gender);
    write (fd, & age, sizeof age);
    write (fd, & score, sizeof score);

    close (fd);
}

利用这个代码顺带讲解了三个运算符
三个运算符均需要两个操作数,且必须都是整型操作数
| : 有一边为1则为1
& : 两边为1才能为1
^ : 不同为1,相同为0

代码使用了open(const char * pathname, int oflag ); 函数, 是在<fcntl.h>
第一个参数是指针,一般来说是给一个字符串,上面chua的程序给了字面串,将创建一个隐藏的数组,进而转化为指针指向数组中第一个元素,
并且由于字面串创建的数组内容不能被修改,刚好第一个参数的指针是用const限定的指针类型,内容是也不能被修改,所以可以直接利用字面串当参数
第二个参数是文件打开的方式,类型是int,
上述程序中: 使用O_CREAT 和 O_RDWR,作为第二个参数,使用的是变量式宏定义,位于头文件 <fcntl.h>,通常是;
#define O_CREAT 00000002
#define O_RDWR 00000100
被定义为两个八进制的整型常量
一般来说程序中都会判断所对应的二进制的每个位,每个宏都只负责一个标志位,O_RDWR,仅对应于文件打开方式的第二个bit,意思是创建或者打开文件的目的是既读又写;O_CREAT仅对应于文件打开方式的第7个bit位,文件不存在则创建它

第二个参数具体怎样去判断状态位(不明白)

第三个参数是许可权限标志,用于哪些人能够打开这个文件,参数的类型是int
S_IRUSR | S_IWUSR 位于头文件 # include <sys/stat.h> 中,前一个意味着只有文件的创建者才能读这个文件,后者意味着只有文件的创建者才能写入这个文件
open函数返回一个整数代表这个文件,叫做文件描述符或者文件句柄,在程序的运行期间,可以利用描述符来读写这个文件。
操作系统会对每个打开的文件记录他们的属性和各种状态,,根据这些信息对文件进行操作,操作系统使用文件描述符定位每个文件的属性和状态信息的线索与把柄
如果open函数成功打开或创建了文件,则它返回该文件的描述符,负责返回-1,程序中 fd 用来接收这个返回值

第三个参数怎样使用也不明白文章来源地址https://www.toymoban.com/news/detail-606759.html

到了这里,关于C语言非常道 6.6.3 逐位 & | ^ 三种运算符的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言中的除法运算符“/”与取模运算符“%”:深入解析与示例

    🔥温馨提示🔥:使用电脑端阅读,获取更好体验🚀 在C语言中, / 和 % 运算符是与除法相关的两个运算符,它们有以下特点: / (除法运算符): 用途:计算两个数之间的除法。 结果类型:如果两个操作数都是整型,结果也将是整型,且向下取整(即忽略小数部分,也称

    2024年03月15日
    浏览(83)
  • C语言运算符详解

    【导言】 C语言是一门非常底层的编程语言,它支持多种运算符进行数值运算、逻辑运算等操作。C语言中的运算符主要有算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符等。本篇文章将会详细介绍C语言中的各种运算符及其使用方法。 一、算术运

    2024年02月07日
    浏览(46)
  • C 语言运算符详解

    运算符用于对变量和值进行操作。 在下面的示例中,我们使用 + 运算符将两个值相加: 虽然 + 运算符通常用于将两个值相加,就像上面的示例一样,它还可以用于将变量和值相加,或者将变量和另一个变量相加: C 将运算符分为以下几组: 算术运算符 赋值运算符 比较运算

    2024年02月04日
    浏览(45)
  • 运算符详解(c语言)

    引言: hello,大家好!我是心跳sy,今天给大家分享c语言运算符详解,我们知道,c语言的一个显著特点就是表达式的应用,表达式是表示如何计算值的公式,而运算符又是构建表达式的基本工具,c语言拥有非常丰富的运算符,包括算术运算符、关系运算符、逻辑运算符、赋

    2024年02月12日
    浏览(38)
  • C语言—位运算符

    目录 (位与,AND): |(位或,OR): 位取反(~): 左移(): 右移(): 语法: a b 作用:将两个整数的对应二进制位进行逐位与运算,如果对应位都为1,则结果对应位为1;否则为0。 语法: a | b 作用:将两个整数的对应二进制位进行逐位或运算,如果对应位中至少有一个为1,

    2024年02月07日
    浏览(33)
  • Python基础知识详解:数据类型、对象结构、运算符完整分析

    Python提供了丰富的数据类型,让我们可以灵活地处理各种数据。 首先是数值类型。数值类型包括整型、浮点型和复数。 整型(int)用于表示整数,例如年龄、数量等。我们可以直接将一个整数赋值给一个变量,如下所示: 浮点型(float)用于表示带有小数点的数,例如长度

    2024年02月09日
    浏览(65)
  • C语言中运算符“^”,“&”,“|”简介

           当我们开始学习编程时,我们可能很快会遇到一种被称为\\\"异或\\\"的运算符。异或操作符通常用符号\\\"^\\\"表示,它是一种位运算符,用于对两个二进制数的对应位进行比较。它的运算规则如下: 如果两个对应位相同,结果为0。 如果两个对应位不同,结果为1。 换句话说,

    2024年02月05日
    浏览(51)
  • C语言控制语句——运算符

    运算符 术语 示例 结果 + 正号 +3 3 - 负号 -3 -3 + 加 10 + 5 15 - 减 10 - 5 5 * 乘 10 * 5 50 / 除 10 / 5 2 % 取模(取余) 10 % 3 1 ++ 前自增 a=2; b=++a; a=3; b=3; ++ 后自增 a=2; b=a++; a=3; b=2; – 前自减 a=2; b=–a; a=1; b=1; – 后自减 a=2; b=a–; a=1; b=2; 示例代码: 运行结果: 运算符 术语 示例 结果 = 赋值

    2024年02月10日
    浏览(40)
  • C语言关于&与&&运算符

    C语言关于与运算符 我们知道,在很多场景中和通常可以相互代替,那么它们到底有什么不同呢? 先看一段代码 使用clang++ -S编译出来的指令如下: 使用clang++ -S -O3编译出来的指令如下: 再看一段代码: 其汇编代码为: 反汇编一下: 通过对比两段汇编代码就很清晰了,运算

    2024年02月10日
    浏览(32)
  • C语言中的 |、||、&、&&、^、~、<<、>> 运算符

    大家好,这篇文章主要介绍一下C的 |、||、、、异或、~、!运算符,希望这些知识可以帮助到大家。 首先我们来了解一下什么是位运算,从现代计算机中所有的数据二进制的形式存储在设备中。即 0、1 两种状态,计算机对二进制数据进行的运算(+、-、*、/)都是叫位运算,即将

    2023年04月08日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包