求解釋這段C語言左移程式,求這段C語言的解釋 求詳細

2021-04-20 03:03:39 字數 3894 閱讀 8807

1樓:我是不是師兄

你這個**太古老了吧

引數列表 還是這種形式 ????

求這段c語言的解釋 求詳細 80

2樓:神之戰戟

找你還真不容易,剛才的程式錯了,改了,你看看!!

#include

#define uint unsigned intvoid delay_ms(uint uitime);

void delay_ms(uint uitime)}void main()}}

在keil裡是沒問題的!!你跑跑看

下面是你上面給的程式的註釋:

#include "reg52.h"

#include "intrins.h" /*包含標頭檔案*/void delay(unsigned int t) /*定義延時函式*/

}/* 延時結束? */

}void main(void)

temp=0x7f; /*當最左側的小燈亮,將中間變數置為0x7f表示最左側的小燈亮*/

for(num2=0;num2<8;num2++) /*迴圈*/}}

3樓:匿名使用者

#include "reg52.h" //是c51(用於微控制器開發的一種c語言)的標頭檔案

#include "intrins.h" //使用_crol_ 函式,所以需此標頭檔案

void delay(unsigned int t) //此為軟體延時函式,就是讓系統執行很多條指令,產生延時的效果}}

void main(void)

//下一個二極體做準備,如此實現二極體的依次亮

temp=0x7f; //為點亮第8個二極體做準備

for(num2=0;num2<8;num2++) }}

0xfe=11111110,表示第1個二極體的置低電平,其餘7個二極體為高電平,所以只有一個亮

0xfd=11111101,這表示第二個二極體亮

4樓:匿名使用者

你這程式是流水燈的吧。

第一個函式是 時間延時。while(t--!0),就是變數t自減1後是否為0,不為0則迴圈。

接下來時主程式。p0=0xff。是為了把p0都置高。

接下來就是8次迴圈,temp = _crol_(temp , 1);temp變數左移一位。同樣8次迴圈,temp = _cror_(temp , 1);temp變數右移一位。建議你多看下c和微控制器的書,或是聽一些教程的。

c語言 左移位的問題,求大神,幫忙解釋一下!!!

5樓:風雷雪電

aa==0x12(0x表示十六進位制,十六進位制12,十進位制是16+2==18),二進位制0001 0010

左移3位,二進位制1001 0000,十六進位制0x90,十進位制144。

左移4位,二進位制0001 0010 0000,十六進位制0x120,十進位制288。

你確定是printf("%d\n",aa<<3);嗎?可能是這個吧:printf("%x",aa<<3);,%x表示十六進位制輸出。

6樓:覺悟壯志

aa=0001`

0010(2).

aa<<3=000`1001`0000=90(10)(就是在後面填3個0,結果和輸出一樣)

aa<<4=0001`0010`0000=120(10)(也和輸出一樣)

樓上好像都不對

7樓:匿名使用者

你說的也不對

aa為18

aa<<3,相當於乘8,顯示144.

aa<<4,相當於乘16,顯示288

我用c++builder6 試過了。

關於c語言的左移(<<)和右移(>>)

8樓:匿名使用者

左移比較簡單,右邊補0(移幾位就補幾個0),左邊丟掉。

右移比較複雜,右移分兩種:

(1)邏輯右移,左邊補0(移幾位補幾位),右邊移出去的丟掉。

(2)算術右移,左邊補最高位(即原來的最高位是0就補0,是1就補1,因為最高位代表符號,這樣可以保證負數不會變成正數),右邊丟掉。

9樓:我不知道啊啊

可以定義一箇中間變數暫存要被移出去的位,正常移位之後再或上這個中間變數即可~

c語言1左移32位(1<<32)是多少,左移-1位呢?求大神解釋!!!

10樓:匿名使用者

1左移32位仍然是1,因為是迴圈移位

左移-1變為0x80000000

11樓:匿名使用者

1左移32位(1<<32)是1,左移1位是2,左移-1位是-2147483648

c語言中,與2乘左移,與2除右移,這個是啥意思,求詳細解釋!!!

12樓:會飛的小兔子

對一個數實施左移操作=對這個數×2;對一個數實施右移操作=對這個數÷2。

a=ox32(16進位制)00110010

b=a<<2

這個時候b=11001000對

那麼此時a=00110010

繼續c=a<<2

請問c是在原來a的初值(ox32)上移動

這個時候c=11001000

一個十進位制的數,在電腦中都可以按二進位制表示。例如:數字8,二進位制就是1000.

左移一位,1000<<1=00010000=16,因此就是=8×2;同理右移一位,1000>>1=0100=4,就是8÷2。

擴充套件資料c語言中移位代替乘除

unsignedinthash(charconst*s)returnh;}

13樓:匿名使用者

這句話的意思就是: 對一個數

實施左移操作=對這個數×2; 對一個數實施右移操作=對這個數÷2。

這個是計算機基本的二進位制操作,因此不僅僅侷限於c語言, 事實上絕大多數計算機程式語言都支援這個操作。

理解很容易:

一個(十進位制的)數,在電腦裡面都可以按二進位制表示。 比如數字8, 二進位制就是1000. 左移一位,1000 << 1 = 0001 0000 = 16, 因此就是=8×2;同理右移一位, 1000 >> 1 = 0100 = 4, 就是8÷2.

一個十進位制a(這裡先以正整數為例說明), 總可以表示成: a = a[n-1]*2^(n-1)+a[n-2]*2(n-2) + .... a[1]*2^1 + a[0]+2^0; 這裡a[n-1]....

a[0]的取值範圍就是0或1,就是一個二進位制數各個位上權係數。 假設a[i] << k; a[i] -> a[i+k]; 它對整個數的貢獻值,從2^i -> 2^(i+k) = 2^i × 2^k, 二進位制的每一位都這樣操作,因此這個數就被放大了2^k倍。當k=1的時候,就是×2;同理右移就是÷2^k.

c語言,求幫忙解釋**是什麼意思

14樓:匿名使用者

a左移2位,和b做邏輯或

5先轉成2進位制「0101」左移2位是「10100」

10100和1邏輯或是10101,再轉回十進位制,結果是21

15樓:砍侃看

a<<2就是a的二進

制數值左移2位。a=5二進位制就是00000101,左移兩位就是00010100也就是20。實際上左移幾位就相當於乘以幾個2,a左移2位就相當於a*2*2。

然後再與b進行或運算,或運算結果就是00010101,也就是21。所以t的值是21。

總的來說就是邏輯運算

c語言程式題,關於結構體資料的,請解釋下這段程式的意思

答案沒拍出來吧 執行結果應該是qian,m,290,qian,f,350 就是給結構體賦值啊,strcpy是將字串複製到name中 c語言程式設計程式設計題目 請 編寫完成對學生相關資訊的要求 1.定義一個結構體型別student,其中包括三個成 c語言課程設計任務書 一 題目 學生成績管理 二 目...

求c語言大神解釋一下這段的意思,語言最好通俗易懂,謝謝了

素數只能被1和他本身整除。假設一個數n 那麼列舉從2到n 1所有的整數,依次判斷如果都不能被整除,那就是素數了。事實上列舉2到根號n的所有整數即可,具體可從數學上證明 c語言 求大神解釋什麼意思 這句話的意思是下面這種情況 int main int f 這種呼叫方式c語言允許,c 不允許 求大神解釋...

C語言剛剛學,這段看不懂,求大神逐個語句解釋下modi

mod int sqrt i 將根號i的值向下取整後賦值給變數mod for j 2 j mod j count統計 2,mod 之間能整除i的數 if i j 0 count if count 0 如果從2到根號i沒有能整除i的數,輸出i printf d i count 0 所以這段 的作用是,...