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 所以這段 的作用是,...