C语言之操作符1

初识C语言1(操作符详解) 算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用、函数调用和结构成员 阅读详情

        在表达式中,常常使用到各种操作符(也被称为运算符)。在这里详细讲解算术操作符,赋值操作符,单目操作符。关系操作符、条件操作符、逻辑操作符会在后期讲解。

一.算术操作符:+、-、*、/、%

        +、-、*、/、%这些操作符都是双目操作符。

        双目操作符:有两个操作数,位于操作符的两端。

如:

int a=4 + 3;

//4和3就是操作数,+就是操作符

//因此+也叫双目操作符

1.1+、-

        +、-用来完成加法和减法。

#include<stdio.h>
int main()
{
	int x = 4 + 22;
	int y = 61 - 3;
	printf("%d\n", x);//26
	printf("%d\n", y);//58
	return 0;
}

1.2 *

        运算符*用来完成乘法。

#include<stdio.h>
int main()
{
	int num = 5;
	printf("%d\n", num * num);//25
	return 0;
}

1.3 /

        运算符/ 用来完成除法。

        除号两端如果是整数,执行的是整数除法,得到的也是整数的商。

#include<stdio.h>
int main()
{
	float x = 6 / 4;
	int y = 6 / 4;
	printf("%f\n", x);//输出1.000000
	printf("%d\n", y);//输出1
	printf("%f\n", y);//输出0.000000
	return 0;
}

运行结果: 

第二个和第三个输出不一样,是因为它们占位符不同,变量y是整型,而第三个占位符是浮点型,因此占位符类型应与变量类型一一对应 。

上述示例中,尽管变量x的类型是float(浮点数),但是 6/4得到的结果是 1.0 ,而不是1.5。原因在于C语言里面的整数除法是整除,只会返回整数部分,丢失小数部分。

        如果希望得到浮点数结果,两个运算符必须至少有一个浮点数,这时C语言就会进行浮点数除法。如:

#include<stdio.h>
int main()
{
	float x = 6.0 / 4;
	int y = 6 / 4;
	printf("%f\n", x);//输出1.500000
	return 0;
}

例子2:

对比上述两个代码,只有20那里不同。

20.0表示进行浮点数除法,score/20.0得到0.250000,0.250000乘100得到25.000000,又由于score是int类型,结果会截断,留下整数部分。

而20进行整数除法,score/5得到整数值0,0乘100等于0 

1.4 %

        运算符%表示求模运算,即返回两个整数相除的余值。这个运算符只能用于整数,不能用于浮点数

int x = 6 % 4; //2

负数求模的规则是,结果的正负号由第一个运算数的正负号决定。

printf("%d\n", 11 % -5);//1

printf("%d\n" , -11 % 5);//-1

printf("%d\n", -11 % -5);//-1

上面示例中,第一个运算数的正负号(11或-11)决定了结果的正负号。 

二.赋值操作符:=和复合赋值

        在变量创建的时候给一个初始值叫初始化,在变量创建好后,再给一个值,这叫赋值。

int a = 100;//初始化

a = 200;//赋值,这里使用的就是赋值操作符 

 赋值操作符=是一个随时可以给变量赋值的操作符。(赋值表达式:https://blog.youkuaiyun.com/wait___wait/article/details/135331063)

2.1连续赋值

赋值操作符也可以连续赋值,如

int a = 3;

int b = 5;

int c = 0;

c = b = a  + 3;//连续赋值,从右向左依次赋值

但这种代码写出来,吧容易理解,建议拆开写,便于观察代码的执行细节。

2.2复合赋值+=、-=

         在写代码时,经常可能对一个数进行自增或自减,如:

int a = 10;

a += 3;//a = a + 3

a -= 2;//a = a - 2

 三.单目操作符:++、--、+、-

        前面介绍了双目操作符有两个操作数,而单目操作数只有1个操作数。

3.1 ++和--

        ++是一种自增操作符,又分为前置++和后置++, --是一种自增操作符,也分为前置--和后置--。

3.1.1前置++

        计算口诀:先+1,后使用;

int a = 10;

int b = ++a;//++的操作数是a。放在a前面就是前置++

printf("%d %d", a, b);//11 11

 a原来是10,先加1,后a变成11,再使用就是赋值给b,b得到的也是11,最终a和b都是11。

再来一个示例,帮助理解 :

int a = 10;

printf("%d\n",a++);//10,先使用a的值,打印10后,a再加1

printf("%d" ,a);//11

3.1.2后置++

        计算口诀:先使用,后+1;

int a = 1 0;

int b = a++;

printf("%d %d", a, b);//11 10

 a原来是10,先使用,就是先赋值给b,b得到了10,然后a再加1,变成11。

3.1.3前置--

        ++和-- 的道理是一样的,只是把+1换成了-1;

        计算口诀:先-1,后使用

int a = 10;

int b = --a;

printf("%d %d", a,b);//9 9

3.1.4后置--

        同理后置--类似于后置++,只是把加1换成了减1

        计算口诀:先使用,后-1

 int a = 10;

int b = a--;//表达式形式

printf("%d %d", a, b);//9 10

从上述几个例子可以看出,如果是表达式形式的,不管是前置还是后置,对于操作数本身都是进行了+1或者-1的 。

3.1.5练习

求下面代码的结果 :

#include <stdio.h>
int main()
{
	int a, b, c;
	a = 5;
	c = ++a;
	b = ++c, c++, ++a, a++;//表达逗号式+赋值表达式
	b += a++ + c;
	printf("a = %d b = %d c = %d\n:", a, b, c);
	return 0;
}

答案:a = 9 b= 23 c = 8 

答案解析:

++运算符:分为前置++和后置++,

前置++:先加1,后使用,即先使用变量中内容,然后给结果加1

后置++:先使用变量中内容,整个表达式结束时,给变量加1

逗号表达式,取最后一个表达式的值。(逗号表达式:https://blog.youkuaiyun.com/wait___wait/article/details/135331063)

#include <stdio.h>
int main()
{
	int a, b, c;
	a = 5;
	c = ++a;// ++a:加给a+1,结果为6,用完加之后的结果给c赋值,因此:a = 6  c = 6
	b = ++c, c++, ++a, a++;
   // 逗号表达式的优先级,最低,这里先算b=++c, b得到的是++c后的结果,b是7
   // b=++c 和后边的构成逗号表达式,依次从左向右计算的。
   // 表达式结束时,c++和,++a,a++会给a+2,给c加1,此时c:8,a:8,b:7
	b += a++ + c; // a先和c加,结果为16,在加上b的值7,b的结果为23,最后给a加1,a的值为9
	printf("a = %d b = %d c = %d\n:", a, b, c); // a:9, b:23, c:8
	return 0;
}

3.2 +和-

        这里+、-不同于算术操作符,是单目操作符。

运算符+对正负没有影响,是一个完全可以省略的运算符,但是写错了也会报警。

int a = +10;  等价于    int a = 10;

运算符- 用来改变一个值的正负号,负数的前面加上-就会得到正数,正数的前面加上-就会得到负数 。

负数可以有以下途径获取:

#include<stdio.h>
int main()
{
	int a = 10;
	int b = -a;
	int c = -10;
	printf("b=%d c=%d\n", b, c);//b和c都是-10
	printf("a=%d\n", -a);//-10
	return 0;
}

欢迎斧正!!! 

后期会不断更新...

期待你的

 

MATLAB R2022b 安装教程 1. 下载安装先放资源链接,百度网盘太贵了不想续了,换了夸克网盘。1. 下载安装。 阅读详情

相关推荐

手把手教你用STM32CubeMX配置WS2812的PWM+DMA驱动(附完整代码)

本文详细介绍了如何使用STM32CubeMX配置PWM+DMA驱动WS2812全彩灯带,包括硬件选型、STM32F103C8T6的时钟配置、定时器与PWM设置、DMA传输优化等关键步骤,并提供了完整的代码实现和常见问题解决方案,帮助开发者高效控制WS2812灯带。

weixin_30859423的博客 440

C语言—操作符1

可以发现,每一次左移都有*2的效果,这是因为每左移一位,二进制序列的每一位都向左移动一位,相当于每一位都*2,但是不是左移都有*2的效果,需要在左移的过程没有丢失原有有效的位,即原本为1的位置(符号位除外)左移后丢失,会导致计算的结果不会有*2的效果。二进制是用0和1的数表示,通常使用的数是十进制的数字,用0-9的数字表示,常见的进制还有8进制,用0-7的数字表示,16进制用0-15的数字表示,但是为了使用方便将10-15的数字转换为a-f表示;原因在于,使⽤补码,可以将符号位和数值域统⼀ 处理;

2502_91437895的博客 992

SAP FICO 资产会计AA后台配置 (上)

输入折旧表“CZ11”如有外币计价的资产,则需指定外币计价的资产折旧范围,以及规则。因为在设置资产类型时,需指定一个对应的 资产编号范围、资产账户确定类型(便于分配自动会计科目)、屏幕格式规则(便于设置资产字段必填与否)。因为在设置资产类型时,需指定一个对应的 资产编号范围、资产账户确定类型(便于分配自动会计科目)、屏幕格式规则(便于设置资产字段必填与否)。新增资产类型:Z101 固定资产-房屋及建筑物新增资产类型:Z301 固定资产-房屋及建筑物。

ghgxm520的博客 1760

【C语言之操作符1】

C语言之操作符1

2301_78107465的博客 505

数理统计四大分布---正态分布、卡方分布、学生t分布和F分布

在统计学上,我们会遇到一些常见的分布,除了正态分布外,,如t检验对应的t分布,检验对应的分布,方差分析对应的F分布等。这些分布是统计学的基础,在假设检验、方差分析等领域都起着至关重要的作用。在此,我们对这四种分布做详细的介绍,并附上MATLAB代码。 四种分布的讲解摘自MATLAB 2016的统计学和机器学习工具箱,有兴趣的可以去查看英文原版。 另外,为了方便,上传文档为图片格式,可能有些模糊...

suncangan的博客 5万+

Windows 11最新WDK安装避坑指南:从Visual Studio配置到KMDF驱动开发

本文提供了在Windows 11系统上进行KMDF驱动开发的完整环境搭建与实战指南。针对最新WDK与Visual Studio的配置变化,详细解析了从独立安装WDK/SDK、创建首个KMDF驱动项目,到编译排错、部署调试的全流程,帮助开发者高效避坑,顺利开启Windows内核开发。

weixin_29302047的博客 525

C语言:操作符(1)

C语言操作符部分知识点的一点小总结

knd_max的博客 1338

爬虫瑞数5案例:联通

瑞数动态安全 Botgate(机器人防火墙)以“动态安全”技术为核心,通过动态封装、动态验证、动态混淆、动态令牌等技术对服务器网页底层代码持续动态变换,增加服务器行为的“不可预测性”,实现了从用户端到服务器端的全方位“主动防护”,为各类 Web、HTML5 提供强大的安全保护。

老衲爱洗头的博客 4470

C语言-操作符详细解析(1)

操作符在c语言中有很重要的作用,鉴于大家在各个地方都有了解过操作符,但是其实大家可能学习的并不全面,并且后续指针可能就会用到操作符相关知识,本篇文章将会详尽地阐述c语言中的各种操作符及应用。

Become Mad的博客 1162

实时数字人SoulX-FlashHead 音视频不对齐解决

【代码】实时数字人SoulX-FlashHead 音视频不对齐解决。

jacke121的专栏 200

cesium vue2/vue3教程目录导航

以下是本专栏目录导航,送完整项目源码(拒绝单页源码),可以直接运行,全部配置免费视频教程(B站)。

qq_29384639的博客 4312

【C语言】操作符1

上面的操作符有部分我们在前面的学习中已经见到和使用过了,如:算术操作符,赋值操作 符,单目操作符,关系操作符,逻辑操作符,条件操作符等。今天我们继续学习一部分,操作 符中有一些操作符和二进制有关系,我们先对进制和进制转换学习一下。

2302_81083101的博客 1601

Unreal5从入门到精通之如何录制360°VR全景视频

摘要:本文详细介绍了使用虚幻引擎(UE)生成360°全景视频的完整流程。首先需启用MovieRender Queue和Panoramic Capture插件,准备场景并设置相机序列。通过影片渲染队列选择8K分辨率输出PNG序列帧,利用ffmpeg工具转换为MP4格式,最终获得高精度全景视频。该方法适用于VR内容开发,能以较低性能消耗实现影院级画质,特别适合冥想类应用场景。教程涵盖从插件配置到后期合成的全链路操作,为开发者提供高效的全景内容生产解决方案。(150字)

TxNet 1401

【C语言】——操作符详解-1

C语言操作符详解:算数操作符,移位操作符,位操作符......

qq_39578649的博客 700

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

C语言只操作符详解(1)

C语言中的操作符

2301_80103797的博客 794

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C语言——操作符详解1

C语言操作符详解1

YT54936543的博客 1180

1-5 C语言操作符

除号的两端都是整数的时候执行的是整数的除法,如果两端只要有一个浮点数,那么此时执行的就是浮点数的除法。C语言中的左移操作符主要是针对二进制进行操作,用于嵌入式系统尤其是51单片机中,配置单片机寄存器。,写法a = a 2;x>>n 把x中的每一位向右平移n位,当x为有符号数时,x

qq_45973003的博客 1164

C语言中的操作符--篇章1

移位操作符--左移操作符和右移操作符的使用和底层运算规律;位操作符--按位与、按位或、按位异或等的使用及其拓展使用,讲解前的知识铺垫进制之间的相互转换,原码、反码、补码的计算方法和操作符对其的操作逻辑

2201_76005883的博客 233

c语言操作符基础知识(1)

基本操作符的运算,例题练习

2301_77367034的博客 314

c语言-操作符1

本篇文章介绍c语言的操作符,分别是赋值操作符、算术操作符、移位操作符、位操作符、关系操作符

pyc68的博客 972

(操作符详解p1)C语言从入门到入土(入门篇)

目录 1. 操作符分类: 2. 算术操作符 3. 移位操作符 3.1 左移操作符 3.2 右移操作符 4. 位操作符 5. 赋值操作符 6. 单目操作符 6.1 单目操作符介绍 6.2 sizeof 和 数组 //操作符还没有讲完哈! 1. 操作符分类: 算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号表达式 下标引用、函数调用和结构成员 2. 算术操作符 + - * / % ...

原来45的博客 905

C语言操作符详解(异或,求二进制1的个数,n&n-1算法)

即使有了操作符的优先级和结合性,我们写出的表达式依然有可能不能通过操作符的属性确定唯⼀的计算路径,那这个表达式就是存在潜在⻛险的,建议不要写出特别负责的表达式。

zzz87的博客 1329

C语言初阶————操作符1

> 右移操作符:①算数移位:右边丢弃,左边补原符号位(除2) ②逻辑位移:右边丢弃,左边补0。复合赋值: += -= *= /= %= <<= >>= &=!(3)位移操作符:操作的只能是整数,移动的位数只能为正整数,移动的是该数的二进制。相关知识点:①进制:二进制(0、1),十进制(0~9),八进制(0~7)(不同编译器右移操作符不同)

2401_83008139的博客 683

C语言入门(十三):操作符详解(1)

16进制的数字每⼀位是0~9,a~f的,0~9,a~f的数字,各⾃写成2进制,最多有4个2进制位就⾜够了, ⽐如f的⼆进制是1111,所以在2进制转16进制数的时候,从2进制序列中右边低位开始向左每4个2进 制位会换算⼀个16进制位,剩余不够4个⼆进制位的直接换算。8进制的数字每⼀位是0~7的,0~7的数字,各⾃写成2进制,最多有3个2进制位就⾜够了,⽐如7的⼆ 进制是111,所以在2进制转8进制数的时候,从2进制序列中右边低位开始向左每3个2进制位会换算⼀ 个8进制位,剩余不够3个2进制位的直接换算。

世界万物,永恒不变,人心炽热,璀璨光芒 1189

C语言·操作符的讲解(1)

操作符的各个操作数属于不同的类型,这时就要将其中一个操作数的类型转换为另一个操作数的类型,这样操作才可以继续进行。操作符的各个操作数属于不同的类型,这时就要将其中一个操作数的类型转换为另一个操作数的类型,这样操作才可以继续进行。(为什么是32位数呢,因为int是整形,占四个字节,而一个字节等于8个比特位bit,所以是个32位的数)在C语言中,算术运算总是以整型类型的精度来进行的,因此为了获得这个精度,两部分,2进制序列中,最后高位的第一位被当作符号位,剩余的都是数值位(

C14159的博客 2739

C语言(操作符)1

操作符详解

小羊的博客 1289

C语言操作符和表达式1

对于/操作符如果两个操作数都为整数,执行整数除法。负整数的原码先反码再加一变成补码。1表示负数,0表示整数。>>右移位符,算术移位:右边抛弃,左边补0,符号位不变。除了%操作符之外,其它的几个操作符可以作用于整数和浮点数。%操作符的两个操作数必须为整数,返回值为整除之后的余数。<<左移位符,向左移位,右边补0。//使用赋值操作符重新赋值。移动的是二进制,数据在内存中以补码的形式进行保存。但是,不建议连续使用,这样代码的可读性比较差。赋值操作符可以让你对自己声明的变量重新赋值。正整数的原码、反码和补码相同。

2301_81543552的博客 486
上一篇: C语言之数组
下一篇: C语言操作符2
大力初奇迹
博客等级 码龄3年 1294粉丝 54原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值