[Powered by Google Translate] [전자 정적 소리] 롭 : 그럼, 우리가 당신을 데려 것은 CS50 스페이스입니다. ALI : 잠깐 백업 기다립니다. 섹션에 오신 것을 환영합니다! 롭 : 섹션에 오신 것을 환영합니다! ALI : 야호! 롭 : Supersection! ALI : 내 이름은 알리 고,이 로브입니다. 자, 이제 우리는 공간을 설명합니다. 롭 : 그래서 우리가 당신을 데려 것은 CS50 스페이스입니다. 이 많은 사용자 섹션에서 이번 학기를 사용합니다. 기본적으로, 우리는 이미 귀하가 어플라이언스를 다운로드 했어. 그리고 당신은 어플라이언스 이야기 웹 인터페이스로 CS50 스페이스 생각할 수 우리는 어딘가에 일부 서버에 있는지. 그래서 당신은이 인터페이스에서 코드를 실행할 수 있습니다, 우리는드립니다 일을 수행하는 방법에 참조하십시오. 당신은 또한 섹션에서 다른 사람들의 코드를 조사하고, 수 - ALI : 그리고 사람들이 발견 한대로, 당신이 옆에 사람들을 채팅 할 수 있습니다. 그리고 우리 모두도를 볼 수 있습니다, 흥미 진진한 인 것. 와서 앉아 들어와. 자리에 앉으세요. 롭 : 그럼, 섹션은 - ALI : 아니, 아니, 너희들이 올 수 있습니다. 롭 : 섹션 이번 학기 훨씬 더 쌍방향 될 것이다. ALI : 아, 그가 어떤 사람 - 오. 오케이, 좋아. 너희들은 단지에 오는 경우 그래서, 당신은 내가 할 수있는 경우,이 링크로 이동할 수 있습니다 거기, 바로 거기. 우리는 정말 보드 공간이 없기 때문에, 책을 쓸 수는 없지만이 링크 지금 당신의 컴퓨터에 해당로 이동, 당신은 CS50을 입력해야합니다 공백, 정말 멋진 일이야. 좋아요. 당신은 문제가 있습니까? 롭 : 그럼 당신은 문제를 찾을 수 있습니다 - 우리는이 곳을 작성 할 수 있어야합니다. 당신은 cs50.net/psets로 이동이 해커 supersection입니다면 - 당신이 pset 하나의 해커 버전으로 이동 사양 살펴 아래 어딘가 페이지에서 - ALI는 : 롭보고있는 동안 결론적으로, 우리는에서 할 수있는 것 섹션 오늘 문제의 한 부분이있을 수 있습니다 - 롭 : - 페이지 8에. ALI : - 문제의 부분이라고 - 롭 : 질문 섹션을 참조하십시오. ALI : 죄송합니다 질문 섹션을 참조하십시오. 그리고 그것들은 우리가 갈거야 뭐야 - 그것들은 우리가 섹션에서 오늘, 갈거야 뭐야. 그리고 우리는 CS50 스페이스에 코딩 할거야, 그리고 희망 그 작동합니다. 그리고 우리가 그들을 통해 이야기 할 수 있습니다. 기분이 언제 당신들이 질문을 할 수 있습니다 - 롭 : 그럼이 가장 psets있는 일반적인 일이 될되고 있습니다. 내가이 하나 생각, 당신이 질문을 인치 건네 할 필요가 없습니다 말합니다 그러나 아이디어는 이러한 질문은 pset를 입고 있다는 것입니다, 당신은 갈 수 그 질문을하는 섹션 대답합니다. 절에 와서하지 않는 경우 또는 직접 답변을하거나 얻을 수 있습니다 근무 시간이나 뭐를 할 수 있습니다. 그러나 이러한 문제 설정을위한 시험을 치루을 수 있겠 질문들입니다. 그리고 해커 판에, 많은 질문은 말이긴 현재 CS 지식을 확장. ALI : 응, 꽤 많이. 좋아, 그럼 CS50 스페이스에 모두인가? 안녕하세요, 들어 오세요 스피커 1 : 우리가 한 번 더 URL을 볼 수 있을까요? 롭 : 네, 여러분 섹션에 실제되면 쉬워 질, 그리고 것입니다 당신의 TF가 사전에 URL 만 이메일로 할 수 있습니다. ALI : 예이, 앉으세요. 좌석이 여기에 있습니다. 전면은 나쁜되지 않습니다. 왜? 그래서, CS50 공백, 우리가지고있어. 어떤 - 우리가에 도착하기 전에 모든 사용자가 질문이 있습니까? 롭 : 모든 분필까지도 없습니다. [안 들리게] ALI : 죄송합니다. 당신의 손톱을 사용할 수? 우리는 매우 높은 기술 수​​준의 매우 낮은 기술 방이에요. 좋아, 잘은 모두 종류입니까? 사람이 그것에 대해 의문이 있습니까? 내가 전에 말했듯이, 우리는에 질문의 섹션을 통해 갈거야 pset 사양. 따라서 문제의 몇 사람은 우리가가는거야 단지가 CS50 스페이스에서 코드. 모두가 좋아? 좋아요. 마음에 드십니까? 롭 : 당신이 노트북을 가지고 있습니까? ALI : 당신은 루카스와 함께 지낼 수 있습니다. 그는 당신 바로 옆에 앉아있어. 본딩 시간. 롭 : 그럼, 첫 번째 문제로 시작 하나? ALI : 그래. 우리는 시작할 수 있습니다. 당신은 날 원해 - 난 갈 수 있습니다. 그래서, 우리는 우리가 pset 사양로 이동합니다. 아, 왜입니다 - 롭 : 제어합니다. ALI : 좋아, 그럼 우리가이 일뿐만 아니라 답변에가는거야? 롭 : 오, 그래. 그래서 - ALI : 아, 모든 시계 롭의 출연 반바지 했습니까? 오케이, 좋아. 롭 : 예, 난 우리가 반드시 당신이 가진 예상 생각하지 않아요 이 섹션에 오기 전에 그것을 본, 그러나 우리는 사람들을 논의 할 수 사전에 문제가 질문 일 섹션에서이되기 때문입니다. 당신이 그것을 지켜하지 않았다면, 걱정하지 마십시오. 이 사람은 시도하고 답변 할 수 있습니다. 그래서, 첫 번째 질문은 사전 프로세서, 방법 # 포함 않습니다 무슨 관련? 그래서 사람이 거기에 대답을합니까? ALI : 니가 그걸 설득 할 수 있습니다. 네, 말씀하세요. 스피커 2 : # 포함 몇 가지 미리 작성된 코드이며, 대신 을 포함을 복사하여 프로그램에 붙여, 말은에 의해, 사전 프로세서는있을거야하고에 추가해야합니다 것을 알고 나중에 이전에 다른 일이 발생합니다. ALI : 네, 멋져요. 좋아. 롭 : 그래서 당신은 실제로 프로그램을 컴파일 할 때, 사전 프로세서은이 첫 번째 단계. 컴파일 네 큰 단계로 발생합니다. 따라서 사전 프로세서는 첫 번째 큰 건이며,가는이 사람이야 과를 통해 이러한 해시 기호의 모든을 찾습니다. 그리고 해시로 시작하는 라인은 사전 프로세서는 보면서보고 그걸 처리 할 수​​ 있습니다. 그럼 # 포함 일부 cs50.h을 찾기 위해 사전 프로세서를 알려줍니다 파일 불과 복사하고이 파일에 내용을 붙여 넣습니다. 그래서 당신은 정말 # 당신이 원하는 무엇이든을 포함 할 수 있지만, 대부분이 될거에요 . h 파일. 우리는 # 아직 정의 미치지 못하는 문제가되지 않도록. ALI : 예, 우리가 그 하나에 됐어요. 사람이 그것에 대해 질문이 있습니까? 우리는 어때요? 다음 질문. 스피커 3 : 짧은에 대한인가가 C뿐만 아니라.? 그와 관련이 있거나 관련이없는입니까? 롭 :. 사전 프로세서와 C에 대해서? 스피커 3 : 그래, 아니면 내가 뭔가를 만들어 냈 지요? 롭 : 그럼 짧은이 파일을 사전 처리 게재되고되었을 수 있습니다 . 다른 C 파일로 출력하면, 그래서 당신은이 파일을 사전 처리 할 수​​ 있습니다 - 당신이 방금처럼 실행할 때, 안녕하거나 그 소리를 hello.c, 모든 뭐하는거야 큰 단계에서 컴파일. 하지만 당신은 명시 적으로는 별도의 단계로 할 수 있습니다. 그래서 일단 당신은 그걸 미리 처리 할 수​​ 있습니다. 그럼 당신은 컴파일 할 수 있습니다 다음, 당신은 조립 수 있으며, 당신은 링크 할 수 있습니다. 우리는 다른 사람들로 연결됩니다. 하지만 사전 처리, 당신 사전 프로세스 그것의 종류, 그리고가는에 다른. C 파일입니다. 사전 처리 정말 아무 것도 변경하지 않기 때문에. 이건 그냥 복사 및 붙여 넣기의 무리입니다. 수동으로 복사하고 직접 붙여 넣기 수 있습니다. ALI :. 그리고 명확하게하기 위해 C 파일이 C 파일이기 때문에 그건 C 코드로 작성된. 그래서 C 코드에서 C 코드에 간다. 당신은 파운드 더 많은 코드를 추가하고 있습니다. 롭 : 당신이 그것을 미리 처리 할 때, 여전히 유효한 C 파일입니다. 스피커 3 : 좋아요. ALI : 좋은 질문입니다. 난 맘에 들어. 좋아, 다음 질문. 컴파일러는 무엇입니까? 누구? 예. 스피커 4 : 그것은 어셈블리로 미리 가공 코드를 변경합니다. ALI : 좋아요. 롭 : 네. ALI : 좋아. 롭 :의 컴파일러가 구체적으로 뭘 될 수 있도록 우리가 꽝를 사용할 때. 아주 일반적인 의미에서, 컴파일러는 하나의 언어로 코드를 빼앗는 거 같은 것입니다 다른 언어로 선회. 따라서 C에서 - 또는, 음, 꽝는 C에 해당 코드를 복용하고 조립에 변화하고 있습니다. 그리고 당신은 전혀 어셈블리를 이해 할 수 없습니다. 그러나 그것을로 들어가고 있어요하는 언어입니다. ALI : 좋습니다. 그리고, 어셈블러가 뭐야? 누구? 스피커 5 : 바이너리에 [안 들리게]? ALI : 죄송합니다, 뭐? 스피커 5 : 바이너리에 [안 들리게]? 롭 : 네. ALI : 예. 롭 : 그럼 어셈블러 - 조립 코드가 정말로, 정말로, 당신의 컴퓨터가 이해할 수있는 주변 하지만 꽤 텍스트를 이해하지 못하는 기억 그 어셈블리 코드입니다. 당신은 바로 1 초와 0s로 변환해야합니다. 그것은 직접 변환 과정 같아요. 우리는 당신에게 표를 줄 수있는지도 각각의 조립 명령을 의미합니다. 그러나 어셈블러는 당신이 번역을하고있다. 이 1 초와 0s에 조립 코드를 변환있어. ALI : 그리고, 마지막 하나, 링커 뭐죠? 및 방법 lcs50는 않습니다 연관? 누구? 롭 :이가 가장 어려운 최소 컴파일러 비디오 하나를 설명합니다. ALI : 사람이 명령에 표시 - lcs50를 기억 하는가? 스피커 6 : 당신이 할에 갔을 때. ALI : 그것은 확인에 있어요. 네, 좋아, 좋아. 네, 가서 - 어떤 추측이나 모호한이 있습니다. 스피커 7 : 당신의 짧은 정말 [안 들리게] 있었기 때문에 잘 모르겠지만했습니다 각 도서관과 함께 별도의 파일 일을하고 퍼팅에 대해 뭔가 한 라이브러리의 모든 함께 않을까? 롭 : 네. 당신은 hello.c가 있으므로 때, 정말 간단한 프로그램입니다. 당신은 정말 만에 하나 일을하는거야. 하지만 당신이 다른 프로그램에 때 - 그리고 당신이 당신의 프로그램에 GetString 경우에도, 당신이 시작하는 데 필요한 것 다른 파일을 포함. CS50 라이브러리는 우리가 구현을 보유하고있는 하나의 파일입니다 그래서 GetString 및 GetInt 모든 것들의. 그것은이 모든보고 다니는 거지 그래서 링커가 수행 것은 함수가 정의되어 어디 호출 할 때 확인 하겠지보고, 파일, 어디 선가, 그렇게 GetString을 알고 GetString하면이 있다는 의미 CS50 라이브러리에 이상 GetString. 링커는 모든 파일을 함께 파괴를, 그리고 지금 차지 당신은 실행 파일을 수 있습니다. 그래서 당신은 CS50 라이브러리를 사용하는 경우, 당신이 모두 필요 염두에 두어야 # 당신과 당신의 제조업체 명령 또한 다음 상단에 포함되어 있으며, 당신이 - lcs50을 가지고 있어야했다. 그래서 당신은 하나를 가질 수 없습니다. 그래서 그냥 나중에 참조 할 수 있도록 염두에 두어야 할 일입니다. 우리는 또 다른 도서관이 cs51.h 같이가 발생했습니다 것이라고 말할 그러면, : 스피커 8 또한 추가 lcs51에 있나요? 롭 : 우리가 그 세트를 가지고 있기 때문에 - lcs50가 완벽하게 작동하는 유일한 이유는 최대 당신의 제품의 특정 장소에 알 수 있도록 어떻게 - lcs50 의미합니다. 우리는 당신에게 cs50.c 파일을 줄 수 있으며, 다음 말은, 그것을 컴파일 할 수 그리고 꽝 hello.c cs50.c,하고는 넣어 실행을 보이게 될 것입니다 함께 두 파일이 있습니다. 이 - lcs50는 것을 우리가 지정하는 일부 디렉토리에 이상 cs50.c 의미 알고 당신의 제품. 당신은 cs51.c는 말은 - lcs51에 의해 specifiable되고 싶어한다면 그 곳으로 알고 그래서 우리는 그 디렉토리에 넣어해야 를 찾습니다. ALI : 귀하의 질문이 무엇입니까? 스피커 7 : 왜 CS50를 연결해야합니까 경우 - 개나은 복사 / 당신이 그것을 사전 처리 첫 번째 단계에서 붙여 넣기? ALI : 당신이 가져 하시겠습니까? 롭 : 그럼요. 따라서 cs50.h 파일은 cs50.c C 파일에서 별도입니다. 당신은 수업 시간에 프로토 타입을 작동 받으신 적있으세요? 좋아요. 그러니까 기본적으로, cs50.h 파일은 복사 및 붙여 넣기 것입니다 - ALI : 너희들이 서명이 무엇인지 알고 계십니까? 좋아, 거의, 당신은 살펴보면 - 롭 : 가자 척 cs50.h가 없습니다. 이제이 파일 - 당신은 문자열 S = GetString을 다하고 있습니다. 그러나 우리가 코드에서이 지점까지 늘어 놓던 때, 아무 생각이없는 것을 GetString입니다. 그것은 당신이 전화를하고 있기 때문에, 함수 란걸 알고있다. 그러나 그것은 실제로 문자열을 반환해야하는 알고하지 않습니다. 내가 말한 것처럼, 문자열 S = GetInt,이 때문에 이해가되지 않습니다 당신은 문자열로 정수를 로그인하고 있습니다. 가하지 않기 때문에 그러나, GetString는 말이되는 걸 모르고 GetString는 문자열을 반환 알아요. 그래서 같이 어떤 cs50.h 말씀입니다. ALI : 어떤 롭 입력하고 있습니다 것은 그래서 그것이로 갈 수있는 방법으로 약속 GetString이라는 함수가 있습니다. 롭 :이 모든 cs50.h입니다 복사하여 여기에 붙여 넣기뿐만합니다 GetInt 모든 것들 있습니다. 그리고 그냥 GetString는 문자열을 반환 않아. 지금, 당신은 아직 구현는지 모르지만, 우리는이 라인에 도착하면 그것은 올바르게 문자열을 반환 알고 있습니다. 스피커 9 : 우리는 # 포함 일을 대신 걱정하지 그래 경우 우리가 실제로 사용하려고하는 것들에 대한 프로토 타입을 쓴거야? 롭 : 네. 그럼이 일을 실행할 수 있습니다. 스피커 9 : 정말이에요? 그래서, 기본적으로, 그것은 단지 CS50에 - 나 할까 -. 롭 : - 표현. ALI : 예, 당신 말처럼 그것이 제조업체 파일에 때문입니다. 롭 : cs50.h도 문자열로 typedef 숯불 *로 발생합니다. 당신은 완전히 그 지금은 무슨 뜻인지 무시할 수 있습니다. 하지만 그 또한 cs50.h.에 포함 된 것이지 이제 상황이 완벽하게 괜찮 았는데. 그것은 우리가 있었을 때 예전처럼 정확하게 실행 이 # 있습니다. 그리고 cs50.h 당신이 필요 이상 - 포함 것들에게 무슨 일이 생긴 포함 - 처럼,이 프로그램의 GetInt을 사용하지 않는,하지만 중요하지 않습니다. 단지이를 무시됩니다. ALI : 그리고 당신은 바로 여기 - lcs50을 때와, 어떻게 일이에요 에는 실제 implementable 코드를 가지고 있다는 것입니다. 실제로하고있다 몫 - GetString에 대한 코드를 작성. 그래서 더 이상 약속 없습니다. 실제로 통과하고 문자열과 모든 물건을하고있다. 이해가가? 질문이 있으십니까? 괜찮아요. 차가운 콩. 롭 : 이제 실제 코드로 이동할 수 있습니다. ALI : 좋습니다. 자, 이제 첫번째 문제입니다. 그럼 소문자의 사용자를 묻는 메시지가 프로그램을 작성 말한다 그리고 편지와는 비트를 사용하지 않고 대문자로 변환 작업 아래의 샘플 출력 당 있습니다. 그래서 당신은 볼 수, 당신은 당신이 다음. / a.out으로 프로그램을 실행하고, 소문자에 놓을 한 다음 프로그램은 자본을 제공한다 A.이 왜 당신들은 그것을 CS50 공백을 던 상관 없어? 그래서 당신들이 모두 여기에 이​​동할 수 있습니다. 그리고 당신은 여기에 모든 코드를 삭제할 수 있습니다. 그리고 가서 일을 코딩을 시작할 수 있습니다. 롭 : 당신은 아마 GetChar를 사용하는 것이 좋습니다 CS50 라이브러리에 포함되어 있습니다. ALI : 난 당신이 상단 부분을 저장하는 경우 더 나은 방법이 있다고 같아요. 그래서 그냥 중간에 물건을 변경 할 수 있습니다. 가서 작동합니다. 서로 협력 해 주시기 바랍니다. 롭 : 그리고 당신이 경우 당신은 질문을 할 수 있습니다 - 스피커 10 : 비트 작업이 무엇입니까? 롭 : 그럼이 문제를 위해 무시합니다. ALI : 당신이 그것을 모르는 경우, 좋군요. 롭 : 우리는 다음 문제에 사용거야. 당신은 비트 연산자는 무엇인지하지 않는 경우 그러나, 괜찮아. 스피커 10 : 그 ASCII 코드로 바꾼 것처럼입니까? ALI : 아니요 롭 : 아니요 이 문제를 위해 작업을 수행 할 수 있습니다. 스피커 10 : 당신이 어떻게해야합니까? 그래서 어디 선가 작성했다 경우에만 - ALI : 또는 쓸 게. 롭 :이에 유형의 단지 종류의 수. ALI : 상단에 입력합니다. 롭 : 아, 나는 마이크에 앉아있어. 그래서, 우리는 우리가 자본에 대한 ASCII 값이 65입니다 강의에서 보았다. 과 자본 B는 등등 66 수, 것입니다. 그럼 당신은 말 그대로 숫자 65를 의미하는 'A'를 사용할 수 있습니다. 마찬가지로이 값은 65입니다. 'A'- 내가 INT X = 100과 같은 작업을 수행 할 수 있습니다. 이제 x는 값을해야합니다 100-65. ALI : 당신은 그것을 실행하고 있다는 표시 할 수 있습니다. 아, 어쩌면 없습니다. 신경 쓰지 마. 롭 : 내가를 인쇄했다. 스피커 10 : 어떻게 문자로 다시 설정해야합니까? ALI : 당신이 ...면 - 당신은 그냥 숯불로 강제 같습니다. 롭 : 그럼가 - 문자와 정수 사이의 차이는 크기의 관점에서입니다. 따라서 정수는 일을 대표 할 수 있도록 일 , 네 억원을 좋아합니다. 문자는 255 일을 대표 할 수 있습니다. 그러나이 아닌 다른 그 사이에 차이점이 없습니다. 그럼 당신은 C = 65 문자라고 할 수 있습니다. 그래서 숯불 C는 'A'를 동일 말하는에 해당입니다. ALI : 오, 이런. 사실은 물건을 저장하지 않습니다. 롭 : 아뇨, 당신은 그렇게 할 수 없어. ALI : 그게 그냥 - [고통의 신음 소리] 롭 : 그럼, 알리 방금 쓴 것은 처음 100를 인쇄하는 프로그램이었습니다 있도록 - 35이었다 정수로 'A', 우리가 예상 한대로, 100 빼기 ASCII 때문에 값은 65입니다. 그런 다음 그녀는 숯불로 해석 의미 % C를 사용하여 출력한다. 그럼 100 - 35입니다. 문자로 그 해석하면 해시 기호로 발생합니다. 당신이 asciitable.com이든 뭐든간에 보면, 당신은 35입니다 볼 수 있습니다 해시 기호. ALI : 네, 문제에 대한 다른 해명? 그래, 너희들은 가서 다음 작업을 수행 할 수 있습니다. 질문을하거나 서로 이야기 해 주시기 바랍니다. 또는 이미 완료하면, 당신은 휴식을 취할 수 있습니다. 루카스 : 그들은 같은 클래스, 순서에있는 모든 소문자이며 그 유용 뭔가가 있기 때문에 또한 대문자은 정리도 있습니다 문제가 발생했습니다. ALI : 좋은 지적 루카스. 그럼, 모두들 구 했을까? 스피커 11 : 예. 그래 맞아, 당신이 어떻게 야? ALI : 맞아. 롭 : 네. 스피커 11 : [안 들리게] ALI : 알았어. 롭 : 질문이 무엇 요청하는 이유는 무엇입니까? 그냥 변환하는 방법 - ALI : 대문자로 소문자를 변환합니다. 그게 전부 야. 롭 : 좋습니다. ALI : 우리가 작성해야합니까? 나는 다른 사람의에서 우리가 찾아 야죠. 롭 : 그럼 걸린 것 사람, 방법에 대한 - 좀 숯불 C를 가지고 있고, 그럼 ... 경우는 편지에서 일어나는 D. 이제 어떻게 알파벳 C의 편지가 뭔지 이해할 수있어? D,하지만 의미하지, D는 알파벳의 네번째 글자로 발생합니다. 그리고 우리가 0에서 세는 경우, 그것은 알파벳의 세 번째 편지입니다. 이 0한다면, B는 1, C는 2, D 3이며, 어떻게 INT 위치를 알아낼 수 - 알파벳 C의 어떤 위치에 있나요? 사람은 어떤 생각을 가지고 있습니까? ALI : 내가 그들 모두를 코딩하는 거 같아요. 롭 : 무슨 첫 번째는 요? 스피커 12 : 그래서 뭐 던지,이 첫 번째를 뺍? 롭 : 네. ALI : 네, 멋져요. 그래서 자본 D을 할 수 - 오, 미안 해요. 당신 말처럼 당신은 문자를 타고 당신은 첫 번째를 뺍니다. 롭 : D 68 같은 것입니다, 우리는 65있는 A,을 빼야한다면, 우리는 얻을 3, 우리 한테 말을하면 D는 알파벳의 세 번째 편지입니다 0에서 시작합니다. 그럼 당신은을 사용할 수 있습니다. 이제 우리는 측면에서 알파벳 어떤 편지, 알 대문자, 또는 - 우리가 뭘 알아 내려고 소문자 동안 같은 일을 할 수 우리가하는 위치를 소문자 그리고 우리는 다음을 사용하여 대문자로 변환하는 것을 사용할 수 있습니다 매우 유사한 생각입니다. 제안 요청? ALI : 당신이 남자들이 - 잠시만 요, 너희들이 얼마나 멀리 모르겠어요. 네가 무슨 짓을의 대부분은, 당신이 아직 작동 있습니다, 당신이 붙어거야? 당신들은 알아 두길 바란다 할 수 있습니다 - 붙어. 한 사람은 붙어있어. 좋아. 저도 받게하는 경향이 있습니다. 스피커 13 : 내가 다. ALI : 당신은 완료? 좋아요. 완료. 스피커 13 : [안 들리게] ALI : 네, 좋아. 그게 소문자 형태로 걸 확인하는거야? 오케이, 좋아. 다른 사람들은 어디 있죠? 이 힌트는 자신을 취소 고집에 당신을 도움이 되었습니까? 스피커 14 : 아니요,하지만 단지 때문에, 난 몰라, 난 아니 거든 아직 소화. ALI : 오케이, 좋아. 너 한번 해볼래 - 아니면 가서 얘기해야하지 않을까? 롭 : 무슨 말을하려고 했어요 - 그래서이을 사용합니다. 당신은 우리가 어떻게 왔는지 이해 알파벳 어떤 위치 편지에? 스피커 14 : 좋아, 단일 인용의 일을 생각해 때문에 때, 그 숫자를 반환? 롭 : 네. 그것은이 나타내는 ASCII 값으로 변환됩니다. 그럼 당신은 ASCII 테이블이든 뭐든간에 그것이로 이동 하시겠습니까? ALI :이 중 하나? 롭 : 네. 그래서 당신은 많은을 무시하고,이 기호 중 하나를 넣을 때 - ALI : [INAUDIBLE] 롭 : 아, 커서를 사용합니다. ALI : 그래. 아주 짜릿했습니다. 롭 : 그럼, 특수 기호있는 왼쪽에서 이러한 사항을 무시 - 당신은 작은 따옴표에서 이러한 기호 중 하나를 넣어 경우, 그것은 것입니다 왼쪽에있는이 값을 번역했습니다. ALI :이 그것을 위해 10 진수입니다. 그것은 65, B 66 번 마디로와 일치처럼, 그리고 당신은 그들이 모든 걸 알 수 있습니다 차이가 알파벳 순서. 롭 그렇게 말 하더군요, 전, 그 코드에서, 우리는에서 거리를 계산했다 첫 번째 문자 이라기보다는. 그리고 그 방법은 우리가 대문자 또는 소문자이든, 같은 수 있습니다. 롭 : 우리가 A, 65 영하 D, 68 한 자 할 때, 우리는 3을. D는 알파벳 셋이 위치이기 때문입니다. ALI : 그럼 어떻게 작은 D를 찾을려고하는 번역까요? 롭 : 네. 지금 3 만 갖고 있으면, 나는에 세 글자에 가고 싶어요 알아 - 우리는 이제 소문자로가는 할 일이 있지만, 우선은 I 세에 가고 싶어요 말 사물의 소문자 측면에 위치. 그럼 어떻게 그렇게 할 수 있습니까? 나는 97입니다 소문자 알아요. 그럼 어떻게 소문자로 3 위치를 찾으려면 어떻게해야합니까? 스피커 15 : 난 사실 질문이 하나 있습니다. ALI : 그래, 계속하게. 스피커 15 : 나는이 위치를 알고있는 경우 그럼이 들어, 정말 문제가되지 않습니다 좋아,이 테이블을 필요하지 않습니다. 롭 : 아뇨. 당신은이 숫자 중 하나를 사용할 필요하지 않습니다. 그리고이 귀하의 프로그램에 중요한 포인트입니다 당신이해야 하드 결코 그 이러한 상수 중 하나를 코드입니다. 'A'를 사용합니다. 65 97을 사용하지 않습니다. ALI : 그이 마법 숫자라고하며, 정말 혼동하고 있습니다. 당신은 코드를 디버깅 할 때, 당신은 기억하지 않을 수는 어때 당신은 그들에게 사용됩니다. 그리고 우리가 코드를 등급에, 우리는 정말 알 수 없습니다 어떤 당신은 그들에게 사용하고 있습니다. 가 만들어 있도록 실제로 문자를 사용하면 그게 더 좋아 사람들에게 더 많은 의미. 자, 다른 질문? 더 많은 사람들이 다 나 있습니다 - 나는 우리가 확인할 수 있습니다 같아요. 당신이 사람들의 코드를 볼 수 있다는 정말 소름 끼치는군요. 롭 : 네. 우리는 여기서 할 필요가 없습니다. 우리는 하나, 사람들의 이름을 알고하지 않습니다. ALI : 오, 그래, 잘 그 더 잘하게, 그래서 우리는 더욱 편향 있습니다 대신 중 무작위로 사람을 따기. 걱정하지 마십시오. 난 그렇게하지 ​​않습니다. 신경 쓰지 마 - 당신은에 대한 임의의 물건이있는 경우. 좋아요. 사람들이 어떻게하는거야? 스피커 17 : 그럼 9 번째 줄 문자를 출력해야하나요? 롭 : 네. ALI : 그래. 당신은 내려면 - 롭 : 아, 그렇게 할 수 없어. ALI : 당신은 그것이 해시 기호를 인쇄 것을 확인할 수 있습니다. 스피커 17 : 아, 알았어. 롭 : 난 당신이 사물을 볼 수있는 다른 방법이 생각 우리는 두 명이 인쇄하는 자. 우리가 인쇄하는 첫번째는 문자 A.입니다 우리가 인쇄하고 다음은 65. 아마이 나 한테 소리 지르지됩니다. 우리가이 일을 실행하는 경우 그래서, 그 시간을 모두 인쇄 것을 알 수 있습니다. 우리는 그것에게 같은 일을 부탁 때문입니다. 우리는 문자 A.을 인쇄 할 것을 요청합니다 그리고 우리는을 인쇄하는 부탁 번호 65 같은 일이 문자로 해석. ALI : 당신이 할 말 있습니까? 아, 그냥 농담, 미안 해요. 그래, 어떻게 사람들 - 롭 : 우리는 단지 통과 할 수 있습니다. ALI : 그래, 그럼 어떻게 시작하나요? 누구? 힌트로, 우리는 typers에서, 사람들에게 뭔가를 얻을 수 있습니다. 스피커 18 : [안 들리게] ALI : 오, 그래, 프롬프트, 좋아요. 그래서 우리는 입력합니다 - 우리가 뭘를 입력해야합니까? 누구? 아니면 내가 그냥 입력해야하나요? 우리가 실제로 입력되는 -을 롭 : 그럼요. ALI : 우리가 할 수 있도록 우리가 메시지를 표시 할 수 printf를 입력하므로됩니다 좋아, 나에게 문자를 제공합니다. 좋아요, 그 다음은? 왜 그런 짓입니까? 롭 : 저는 모르겠어요. ALI : 좋습니다. 이제, 우리는 우리에게 문자를 제공하도록 알리는 것이됩니다. 하지만 어떻게 실제로 그 인물을 어떻게해야합니까? 스피커 19 : 사용 GetString. ALI : GetString? GetChar? 좋아요, 문자열과 문자의 차이는 그렇게 뭐죠? 스피커 19 : 문자열이 문자의 배열 같은 시리즈입니다. ALI : 차가운, 그래. 따라서이 문제에서 우리는 한 번에 하나의 문자를 고려해 볼 필요가 있으므로 우리는 그 예를 들어 GetChar을 할 겁니다. 롭 : 우리가 전체 문자열을 가지고 있다는 원한다면 우리는 기능을 구현 할 수 그리고 문자열을 통해 가서 대문자와 모든 모두 소문자 변경 소문자로 대문자. 하지만 여기, 우리는 한 문자에 대해 요청합니다. ALI : 그래서 지금 우리가 여기에 문자가 있지만 우리는 그것을 저장해야합니다. 그래서 우리는 문자 c를 추가 할 - 왜? 스피커 20 : 변수를 정의합니다. ALI : 네, 맞아요. 그래서 우리는 우리의 성격을 갖추고 있습니다. 롭 : 난 당신이있을 것 같아 - 그게 너 한테 소리지르는 이유입니다, 단지 세 공간에 있어요. ALI : 오케이, 좋아, 우리는 세트를 탭 이동이 이젠, 무슨 다음은 뭐죠? 다음 단계는 무엇입니까? 롭 : 어떤 프로그램이해야하는 것은에 소문자를 변경합니다 편지를 대문자. 내가 해시 기호를 입력 할 일이 있다면 요? 이건 진짜 - ALI : 그것은 좋은 상징입니다. 우리는 많이 사용합니다. 롭 : 유효한 것은 나 대문자 형태로 변환 할 수 있습니까? 스피커 21 : 번호 ALI : 아니요 우리가 그렇게를 확인해야합니다. 그래서 우리는 할 수 있습니다 C는보다 클 경우 문이 있으므로 확인하는 경우 또는 소문자 'a' 같다 - 우리가 차트 보면 그래서, 당신은 여기 사이 여야 것을 알 수 97와 소문자.에서 그리고 이들 중 어떤되고, 단위에있는 모든 방법 다운 할 수 있습니다. 그리고 122 Z가 있습니다. 그리고이 두 값 사이에 해당합니다. 그게 말이나 돼? 롭 : C 97 122 사이에하지면 - 또는 해당 번호를 사용 할 필요가 없습니다해야합니다 - c는 'A'사이가 아닌 경우 'z는'그게 우리를 대문자로에 사용할 수없는 문자했습니다. ALI는 : 그럼 코드 형태로, 우리는 그런 말을 C는보다 크거나 하나 같 인 경우 케이스 소문자 - 와우, 어떻게 그런 말을 했어? 좋아요,보다 크거나 소문자 'A'와 동일하며,이 이상이어야합니다 소문자 'Z.' 그래서 'Z'를 소문자로보다 작거나 같아야합니다. 우리는 둘 사이에 확실하게하고 있습니다. 그런 다음 우리는 행복 코드를 계속 진행 할 수 있습니다. 왜? 롭 : 우리가이 없을에 있다면 그래서, 우리가 질문을 계속하지 않을까? 편지를 소문자. ALI : 아, 그 알고 아니 었습니다. 미안 해요. 좋아, 그럼 우리는 남편 말대로 할거야, 그리고 있는지 확인하는 경우 - 우리는 어떻게해야 다음으로 질문을 계속 할 수 있습니까? 스피커 22 : [안 들리게] 롭 : 네. 우리는 루프의 어떤 종류를 사용해야합니다. 사용자는 막대한 양의 시간에 잘못된 항목을 입력 할 수 있기 때문에. 그럼 당신은 잠시 동안 루프를 사용할 수 있습니다. DO - 동안 루프의 목적 - 문자 그대로, 전체 인생에서 당신은 이제까지 사용하지 -를 당신이 사용자 입력을 요청하는 때 루프가에 있습니다. 그래서 우리가 여기에 사용자의 입력을 요청하는 사실은 우리가 그렇게해야 힌트입니다 DO - 동안 루프를 사용합니다. 그리고 왜 그래야하지? 때문에 수행 - 동안 루프는 항상 한 번 이상 발생합니다. 따라서 사용자의 입력을 요청 할 때, 적어도 한 번 그런 일이 싶습니다. 일이 성공한다면 그 다음, 당신은 계속 할 수 있습니다. 그렇지 않으면 돌아가서 다시 부탁드립니다. ALI : 그럼 즉, 우리가 섹션을해야합니다. 그리고이 일을 할 말씀입니다. 따라서 printf - 문, 프롬프트, 또한 문자를 가져 오거나 시도에 인쇄 문자를. 그리고 우리는 실제로를 정확하게 한 있는지 확인해야합니다. 그럼 우리가 조건을 추가, 우리는 동시에 말을하고 우리는이 조건문. 롭 :하지만 지금은 우리가 생각의 기차를 뒤집습니다. 지금 C가이 범위에있는 경우 우리가 원래 말했었다은 유효합니다. 이제 우리는 다음이를 반대로하고 C는이 범위에없는 경우하고 싶은 말 다시 일을 백업해야합니다. ALI : 오, 그래. 롭 :이 사실이 아니되는 동안 그래서, 우리는 우리가 돌​​아가서 할 다른 문자 부탁드립니다. 모든 사람들이 그렇게 볼 수 있습니까? 이에 대한 질문이 있으십니까? 좋아요. 이제 우리는 대문자 수있는 유효한 문자가 있습니다. ALI : 그럼 그렇게 uppercasing에 대한 어떤 다음 단계? 스피커 23 : 32을 추가합니다. ALI : 당신은 추가 - 죄송합니다, 왜? 스피커 23 : 당신은 32를 추가 할 수 있습니까? 롭 : 예 그럼,하지 마법의 숫자 측면 인치 당신은 단일 견적 물건을 사용해야합니다. 스피커 23 : 좋아, 그럼 - 롭 : 당신은 32 수 - ALI : 어떻게 수 32, 내 생각에 우리가 무슨 말을하는지입니다 거지. 스피커 23 : [안 들리게] 남편 : 그래서 우리가 숫자 함께 32까지 올 수 - 스피커 23 : [안 들리게]? 롭 : 네. 우리가 두 단계에서 할거면하지만 우리는 함께 이전과 위치 때문에. 따라서 C는 할 일이있는 알파벳의 위치는 C 뺀 소문자입니다 'A'. 우리는 소문자 'd'를 입력하면, 위치는 3가 될 것입니다. 그리고 지금 우리는 사물의 대문자 범위로 일을하고 싶습니다. 이제 우리의 새로운 C가 수도 'A'플러스 위치가 될 것입니다. 그래서 사람들은 우리를 제공합니다 방법을 볼 수 없어 - 우리가 소문자 범위에서 이동하고, 정확한 깊이 우리가 그에있었습니다 범위 및 대문자 범위에 추락하고, 그렇게 멀리 갈 그 안으로 다시 한 지금 같은 문자가 될 거란 건 알지만 uppercased. ALI : 그리고 어떻게이 혼란 된 사람들을 위해 그는 32 말을 기본적으로 그는 한 문장으로이 모두를 결합. 당신이 방금 가지 수 말이 작성되므로 이에 상응하는 방법 대체 위치는 C 마이너스 ','하고 여기에 넣어. 그래서 그는 무슨 짓을했는지, 나는 - 숯불 newc = 대문자 'A'플러스 C 마이너스 'a'를 소문자. 때문에 대수의, 당신이 그들을 이동할 수 있습니다. 당신은 또한 당신이 그것을 이렇게 숯불 newc = 대문자 'A'이동 할 수있는 말을 할 수 마이너스 'A'플러스 C를 소문자. 우리가 돌​​아 차트 가면이, 당신은 것을 알 수 있습니다. 우리는이 65 대문자와 소문자 97이 있습니다. 그래서 65-97은 -32입니다. 안녕하세요. 자리에 앉으세요. 오. 바로 여기 앉아 할 수 있습니다. , 쿨 좋아, 최고. 섹션에 오신 것을 환영합니다. 그 차이가 32 것을 알 수 있습니다. 그는 그 번호를 가지고 몫이다. 롭 말씀대로 이상한 있기 때문에 그러나,,, 그것을 할 가장 좋은 방법은 아닙니다 마법 번호 혼란. 롭 : 당신은 마이너스가를 소문자 대문자를 사용해야합니다. 당신은 바로 32 사용해서는 안됩니다. 스피커 24 : 왜 즉, 다시? 넌 왜 32를 사용하지 않을까요? ALI : 우리가 그랬다면,이 숯불 것 newc = -32 + 다. 그리고 경우에이 모든 사라 경우, 나머지 중 하나를 참조하고하지 않습니다 얼마나 당신이 부정적인 32 어떻게 알 수 있습니까 한 후,이 한 줄 보이지? 이 여길 뿐이에요. 롭 : 그럼 프로그램이 완전히 잘 작동합니다. 단지 스타일의 문제입니다. 누군가가 이동하고 코드를 읽기, 그들은 32 무슨 뜻 같아? 아마 엔 - 아마 바로 32에서 일어나는 걸 깨닫게하지 않을 소문자와 대문자의 차이, 비록 우리는 다음 문제에 그 사실을 사용하는거야. 32이다 - 당신이 32 말을 위의 설명을 할 수는 차이입니다 'A'와 '.' 그러나 그 시점에서, 왜 그냥 'A'와 ''당신을 사용하지 다음 댓글을 필요가 없습니다. ALI : 그것은 단지 위의 방법이 많은 청소기, 스타일 - 현명한입니다. 그리고, 당신은 금방 시작부터 프로그래밍 - 신경 쓰지 마 - 당신이 해커 EDI 이니 아니면, 아닌 거 같은데. 단지이 할 수있는 좋은 방법이다 - 그것은 더 나은 스타일을하는 것이 좋습니다. 그것은 다른 사람들이 읽을 쉬워졌습니다. 롭 : 당신은 ASCII 테이블을 기억 적이 필요하지 않습니다. 당신은 작은 따옴표 문자를 사용할 수 있습니다. 질문이 있으십니까? ALI : 좋은 사람들? 롭 : 좋습니다. 그럼 다음 문제는 상당한 것입니다. 그럼 다음 문제는 우리에게 묻습니다 - ALI : 다음 문제는 같은 일을하지만, 사용하길 요구합니다 비트 연산자. 롭 : 그리고 물론, 우리가 아직 비트 연산자를 보지 못했어요. 그래서 우리는 이제 이러한 논의됩니다. ALI : 흥분이어야합니다. 그들은 슈퍼 재미 있단다. 롭 : 그럼 X 플러스 Y, 마이너스, 시간, 분리와 같은 일반 연산자. ALI :이 프롬프트에 입력합니다. 롭 : 당신이 그것을 본적이 없다면 %는에 의해 사용할 수있는,도 있어요 퍼센트 기호. 그러나 우리는이 문제에 대해 사람들을 사용하지 않습니다. 우리는 비트 연산자를 사용하고 싶습니다. 지금 기억, 우리는 강의 하나를 꺼내 더군요. 난 우리가 그 이상 바이너리를 논의 한 경우 모르겠어. 매번 번호가 표시됩니다 기억 - 잘, 모든 - 이진의 1 초와 0s에 표시됩니다. 전 그 번호 8 말할 때, 나는 그게 것을 아세요 것을 의미합니다 그럼 1000,처럼. 어떤 비트 연산자는 우리가이 비트에서 작동됩니다하자 - 바로 이러한 비트에서 작동합니다. 지금은 더 이상 여덟 측면에서 다루고 없어요. I 1000의 관점에서 다루고, 나는 그와 함께 일을하고 싶지는 개인 비트. 그럼 알리 여기에 비트 연산자를 작성하지만, 그건 정말로있다 - 우리는 예를 들어 번호 중 하나로 사용할 수 8. 그리고 이진 표현은 1000입니다. 우리는 다른 번호 5를 사용합니다 - 실제로의 9와 5를 사용하여 보자. 그리고 5의 이진 표현은 00 - 0101. ALI : 그에 좋은 모든 사람이 있습니까? 이진 거? 처음 강의에서 였죠? 롭 : 당신이로 물건을 변환하는 방법의 상단에 전적으로하지 않더라도 이진, 그게이 문제에 대해 완전히 중요하지 않아. 우리가 사용됩니다,하지만 더 많은 기회가 방법을 찾아 내야 할거야 빨리 진으로 일을 켭니다. 따라서, 9와 5를 사용하여 이제 우리는 우리의 비트 연산자가 있습니다. 아, 그리고 또한, 9, 5, 그건 정수이라면, 정말이에요, 32 비트 그건 우리가 다음 시대의 많은 0, 0, 0, 0처럼 수 있다는 것을 의미합니다 맨 끝 101. 즉, 단지 정수에서 당신이 무슨 짓을하든, 32 비트 없습니다. 우리는 9 표현하기 위해 4 비트가 필요해서하는 것은 우리가 아니란 건 아냐 단지 0s의 다른 27 비트를 사용합니다. ALI : 단지 명확하게, 0 또는 1의 숫자 중 하나가 비트입니다. 이 사람은 4 비트입니다. 수 있도록 롭은 기계가 32에 보관했다. 그래서 그들은 0 또는 1 중 하나의 32을 얻을 수 있습니다. 쿨? 롭 : 비트 연산자. 우리가 처리하겠다고 첫번째, 어디하자 및. 그래서 우리가하면 9 & 5. 그래서 어떻게 & 수행하는 비트 비트에 의해, 그것은 두 숫자의 비트를 비교 숫자 모두 1이라면 다음은 1을 반환합니다. 하나는 0이며, 다른 하나는 1 또는 모두 0s 아르 인 경우는 0을 반환합니다. 그럼 당신은 논리 ANDs로 생각할 수 있습니다. 당신은 TRUE를 반환 할 사실이고 진실이 필요하지만, TRUE와 FALSE 거짓 인 것. 그래서 같은 일이야, 지금 우리는 비트와 함께 다루고 있습니다. ALI :이 보는면, 당신은 1이됩니다 - 당신이 그들을 줄거야, 그래서 1과 0이 될 수 있습니다. 너희들이 될 거라고 생각 해요 - 그 일에 평가까요? 스피커 25 : 1. ALI : 좋아. 아니면 안돼. 미안 해요. 그럼 의미가 되나요? 따라서 집단 대답은 또 무엇인가? 미안 해요. 우리가 1과 0이있는 경우 그래서 당신은 무엇을 어떻게해야합니까? 롭 : 그래서 당신은 당신이 말하는 방법을 생각하고 펼쳐. 두 개의 비트를 가지고 있다면, x와 y는, 당신이 위해서는 x와 y는 1 할 필요가 가 1 평가하기 위해, 또는 - true로 평가합니다. X 또는 Y는 0 인 경우 다음과 다르거 나 0으로 평가합니다. 루카스 : 그것은 1에 해당하는 0이 틀렸다고 말할 수도 기억 좋아요. 당신은 진정한 & 거짓이면, 그것은 거짓입니다. 그런데, 사실, 사실 및 사실. 거짓과 거짓, false입니다. ALI : 우리는 진실과 거짓 있습니다. 하나 자와 0. 그럼 다시, 죄송합니다, 한 번 더? 스피커 25 :은 0이 될 것입니다. 네, 좋아요. 그리고 우리는 0 & 1이 - 스피커 25 : [안 들리게] ALI : 그래. 당신이 항상 경찰에 교환 할 수 있습니다 - 그럼 당신은 0과 0이 있다면 요? 스피커 4 : 1? 0? 롭 : 그럼 0입니다. 이 두 숫자가 동일해야한다는 없습니다. 이 두 숫자는 1 할 필요가 있습니다. ALI : 그럼 둘 다 사실하기 위해 사실해야합니다. 그럼 0입니다. 그리고 당신은 1 % 1을 가지고? 롭 :이 꽤 좋은 번호입니다. 그들은 가능​​한 모든이 - ALI : 잘 했어, 와우. 오케이, 좋아. 따라서 모든 사람에게 의미가 되나요? 롭 : 그래서 지금 우리가 할 |. 그리고이 매우 유사 할 것이다,하지만 지금은 대신 x와 y는 할 필요 그 하나에 평가 될 수 있도록 1 일, 지금은 X의 또는 Y는 1 있어야합니다. ALI : 그럼 1 | 0으로 평가 - CLASS : 1. ALI : 좋아. 0 | 1로 평가 - CLASS : 1. 쿨하고 0 | 0 - : ALI CLASS : 0. ALI : 맞아, 그 후에 1 | 1 - CLASS : 1. ALI : 좋아. 그럼 두 비트 연산자 같아요. 짱이다. 롭 : 그래서 지금 우리가 ^을 다하겠습니다. ALI : 우리 모두를해야합니까? 롭 : 그래, 우리가 사용하는 것 생각하기 때문에 - 그들 모두를 사용합니다. ALI : 좋습니다. 그래서 - 롭 : 나는 우리가 필요 없겠군요. ALI : 그럼 당신은 정확히 하나의 진실과 거짓을 가져야한다는 점에서 ^ 작동합니다. ^ 독점적 인 의미 OR. 이제 그렇지 않아 - x와 y가 모두 1아르 경우, 지금은 거짓입니다. 그래서 ^의 차이이며, | x는 경우, OR, 당신이 가진 수 있다는 것입니다 true 또는 y는 사실, 우리는 잘해. 아니, ^는 x에 해당하는 경우, y는 거짓이 될해야한다고, 또는 다른 그 사실이 아니에요. 당신은 질문이 있습니까? 스피커 26 : [안 들리게] ALI : 그래. 그것은 유사한 종류입니다. 롭 : 네, 그 낮은 수준의 하드웨어 물건 도착할 때, 이것들은 작업의 종류 당신이를 다루고 있습니다. 하드웨어 수준에서 만 비트를 처리합니다. 당신은 번호를 처리하지 않습니다. ALI는 : 당신이 1이 좋아요, ^에 대한, 또는 경우 ^ 0 그에게 무슨 평가해야합니까? CLASS : 1. ALI : 좋아. 당신이있는 경우 0 ^ 1? CLASS : 1. ALI : 좋아. 0 ^ 0? 좋아. 그리고 1 ^ 1? CLASS : 0. ALI : 차가운 최고. 다음 - 롭 : 나는이 우리가 처리해야 할 모든 생각합니다. 우리는이 일을합니다. ALI : 우리가해야 할 것이다 유일한 시간 - 롭 : 아, 그 마지막 문제에 대한 것입니다. 스피커 27 : 기다려, 다시 한 번? ALI : 죄송합니다 질문이 무엇 이었습니까? 스피커 27 : 당신이 다시 한 번 그렇게 설명 할 수 있습니까? ^? 스피커 27 : Exclus - 예. ALI : 배타적 OR 수단에서만이있을 것입니다 그래서요 진정한 한 거짓, 어느 한 한 0 대와 OR, 당신은 할 수 있습니다 - 그 중 하나는 사실하는, 또는 둘 다 그것을 사실 수 있습니다 true로 평가합니다. 스피커 27 : 그럼 0과 0 잘못된 것입니다. ALI : 그래. 하지만 당신이 1 경우 | 1 일이 true로 평가합니다. 당신이 한에게 ^ 1이있는 경우 그러나, 우리가했던 것처럼, 그 false로 평가합니다. 이 독점적 아니니까 하나는 사실입니다. 롭 : 그리고이 또는 도움이 될 수 있지만 ^이되고 있다는 사실을 알 수 없습니다 수도 있습니다 | 그냥 퇴보하는 것과 같을 마이너스 및. 그리고 당신은 실제로 이런 식으로 생각할 수 있습니다. ^ 그냥 같이 모든 ORing하지만 비트 중 하나를 꺼내고 곳 모두 사실이었다. 따라서 & 모두이 사실 모든을 반환합니다. | 하나 또는 둘 모두이 사실 모든을 반환합니다. 그래서에서 그 방법을 찾아 빼는 | 것은 당신에게 ^을 제공합니다. ALI : 질문? 이 정보의 많은이었다. 좋은 사람들? 롭 : 우리는 다음 문제에 대한 다음 사람을 통해 갈 수 슬래시 지금 몇 시지? 그 다음 문제가 될 때까지이 필요하지 않습니다. ALI : 내가이 중 하나라고 생각. 롭 : 그것은 아니야. ALI : 하시겠습니까? 롭 : 네, 확실 해요. ALI : 왜 우리는 다음 문제를 일을 시작할까요? 문제는 대문자로 소문자에서 변경, 다시입니다,이 비트 연산자를 사용 할 시간. 롭 : 그럼 우리가됩니다 - 'A', 자본 'A'의 이진 표현부터 시작 해요, 어떤은 65입니다. 그럼에 이진 - 그래서 'A'바이너리에 = = 65 - 나는 0s의 수를 망치지 갈거야 - 그. ALI : 모든 사람에게 이해만큼 무엇입니까? 따라서, 1도, 거 고요, 아니 4S, 아니 8s, 더 - 더 기가없고, 32s, 그리고 다음 하나 64. 롭 : 예, 그이 너무 많은 0s 것 같아요. ALI : 죄송합니다. 롭 : 좋아, 그럼 우리는 64 세트를 가지고 있고, 우리는 1 세트를 가지고 있고, 사람들을 결합 함께, 우리는 65를. ALI : 차가운 콩? 롭 : 그럼 이제, 'a'을 소문자 - 97 공지 사항 - 97 65의 차이점은 무엇입니까? 스피커 28 : 32. 롭 : 네. 그래서이 자신의 비트입니다, 32이야, 110001 할 거에요 그럼. 그리고이 가능한 모든 문자에 대해 사실이 될 것입니다. 우리가 68가 될 것입니다 'D', 생각한다면, 그 1,000,011거야. 그리고 소문자 'd는'이다 100 68 플러스 32이 될 것입니다 단지를 내리고,이 정확히 같은 일이 될 것 다시 32, 1,100,011 때문에. 따라서 대문자와 소문자의 차이는 단지 내리고있다 32 비트 위치를 그. 스피커 29는 1,000,100 아닌가? 롭 : 잠깐, 그건 100입니다 - 내가 잘못 한 일. 이 사실이 아니 었습니다. 난 그냥 갇혀 다음 3의 차이라고 생각하므로되었습니다 끝 부분에있는 바이너리 3. 이 아이가 있어야합니다. ALI : 감사합니다. 그런 지적에 좋은. 그 날카로운했습니다. 좋아, 그 사람들에게 명확하다? 롭 : 대문자와 소문자 버전 사이의 차이는 항상 32 수있을거야, 그래서 항상 단일 비트 될거야 그 두 사이에 변경 뒤집힌해야합니다. ALI는 : 그럼이 경우, 자본과의 차이를 아는 소문자는 좋은 일입니다. 코드에 있지만, 개념적으로 적어도, 그것은 잘 수 없습니다. 그럼 너희들은 공간에 지금 가서 코드를 할 수 있습니다. 아니면 그냥 의논 ​​했어야 지? 롭 : 우리는 그것을 토론 할 수 있습니다. 모르겠어요. 당신들은 시도 할 수 있습니다. 잠시 자신 사이에 대화. 우리는 너에게 그것을 코딩 할 수있는 기회를 제공합니다. [목소리를 INTERPOSING] ALI는 : - 시원 스피커 : 30이 해커 코미디 같다. ALI : 예, 우리가 그것을 통해 가고, 소식을 알리는 것이됩니다. 롭 : 우리는 돌아 왔습니다. ALI : 그 이상 이죠. 우리가 CS50 뉴스 스테이션을 갖추고 있습니다해야 할 것 같은 생각이 우리는 수 실제로 이렇게 앉아. 롭 : 해커 뉴스. ALI : 해커 뉴스 50. ALI : 당신이 혼동하는 경우 어떤 질문 해 주시기 바랍니다. 롭은 : 사람이 붙어 있습니까? ALI : 예, 그건 좋은 일이야. ALI : 잠깐만는, 당신은 의자에 붙어있다? 오. 내가 좀 걱정했습니다. 롭 : 그냥 우리가 원하는 것 있다는 것을 때문에 다른 비트 연산자. 지금은, 그냥 소문자로 대문자로 변환 보자. ALI : 죄송합니다, 모든 사람들이 그 발표 거죠? 우리는 소문자로 대문자로 갈거야. 롭 : 그럼 우리가 그 후에 권리를 대문자로 소문자로 논의됩니다. 오, 이런. 우리는 우리가 실행하려고 결코, 내 생각에이 일에 버그가 있습니다. 어떤은 문자 C는 루프의 외부 선언 할 필요 그저 때문 그 범위는 루프 제한됩니다. 스피커 32 :이 경우,이 번호를 사용하고 뭐가 문제 야? 롭 : 음, 당신이 필요하지 않습니다. 제가 자본 있음을 보장하는 경우 'A' - 또는, 소문자'A '마이너스 자본'A ' 당신이의 32를 모르는 정확히 하나의 비트,하지만 있었어요 - 일이 이성을 상실 된 16 비트라면처럼 잘 작동 것 - 또는 아니, 나는 싫습니다 것 - 또는 64 비트 가능성이 인질을했다. 그러나 당신은 32를 사용할 필요가 없습니다. 대신 'A'마이너스 자본 'A'를 소문자 사용할 수 있습니다. 스피커 32 : 좋습니다. 당신이 너무 많이 작성하는 기분이 경우 할 수있는 일을 당신이 그것을 정의 할 수 있습니다 상단에있는. 그럼 당신은 할 수 있습니다 INT의 차이, 같은 = 'A'마이너스 자본 'A'를 소문자. 과 다음 대신 차이를 입력 할 수 있습니다. 그 유효 기간입니다. 그러나 단지 숫자 32를 사용하여 가지입니다 - 스피커 33 : 사고가 32 비트하다는 것 때문이라고하더라도? ALI : 그래. 롭 :이있을 수 있습니다 - 우리가해야하는 유일한 보증은 그 차이 소문자와 대문자 하나의 비트입니다. 그것이 이성을 상실있어 32 비트 할 일이 있다는 문제가 없습니다. 시간 고려, 우리는이 이상가는 시작합니다. 당신이 완료되지 않은 경우 괜찮아요. 걱정 말아요. 롭 : C는 대문자입니다 가정 - 우리는 c는 대문자로 추정 할 필요가 없습니다. 우리는 C이 동안 루프 후 대문자인지 - 할 - 동안 루프. 그래서 그게이 'A'와 같은 보이는 것을 의미합니다. 우리는이를 데려오고 싶어한다면 이 'A'를 'A', 우리는 어떻게해야하나요? 그럼 어떻게 변환하고 비트를 뒤집기합니까? ALI : 어떻게 우리가 그것을 뒤집기합니까? 롭 : 그럼 우리가 32 비트를 돌려 싶어. 그럼 '는'마이너스 'A'를 할 것입니다, 아니면 32를 쓸 수 있지만 - 제길, 그 반대입니다. ALI : 좋아, 결국 남편이 여기에 해당 번호를 계산있어, 마법 번호 32. 그 비트 플립 지역이 어디에 그래서 그는 깨달은 거죠. 물음표가있는 곳 그리고 우리는 무엇을해야합니까? 롭 : 어떻게 우리가 그 비트를 뒤집기합니까? 대문자의 측면에서, 그것은 0, 우리는 1이되고 싶습니다. 스피커 34 : |. 롭 : 네. 그래서 우리는 우리가 'A'를 말하고있다. 우리는 0을 ORing거야 - 1000 - 그 = 그. ALI : 모든 사람에게 의미가되는 것 같아? 당신이 원하는 경우에 우리는 조금씩 그것을 통해 이동할 수 있습니다. 스피커 35 : 당신이 있습니까 [안 들리게]? ALI : 빼기 기호는 어디 있나? 롭 : 아, 여기에 말인가요? ALI : 오, 그래. 롭 : 나는 우리 것 같네요 그래서. 우리는 32 말할 수, 이제 우리는 비트 연산자를 사용하고 있습니다. ALI : 우리는 마법 번호를 좋아하지 않아. 우리는 할 수 없어요. 또한, 저는 우리가 비트 연산자를 사용해야한다고 생각 - 스피커 36 : 당신이 ^를 사용하는 경우, 당신은 32받을 수 있습니까? 스피커 37 : 네, 생각 - 롭 : 당신이 그럴 그래. ALI :이 자네가 가고을 위해했을 방법입니다 자본에서 소문자합니다. 로브와 내가 프롬프트를 변경하는 방법과 우리가 간 이유는 이제 누구 말해 줄 수있는 대문자 소문자에서 대신에 소문자 우리가 전에 그랬던 것처럼 대문자? 그 것보다 더 어려울 이유 사람은 어떤 아이디어가 있습니까? 롭 : 그럼 우리가 어떻게 - ALI : 그래, 계속하게. 스피커 38 | 연산자는 추가 너무 좋다. ALI : 네, 맞아요. 롭 : 그럼 우리가 사건을 대문자로 소문자로하고 싶은 것은, 이 'a'를 변환 - 그래서 우리는 여기에 몇 가지 숫자 넣어 보라 있도록 몇 가지 연산자를 사용하려면 아웃 자본 A.에 우리는 여전히 아마 어떻게 든 32를 사용하여, 지금하는 방법이 없어 이렇게 나와도이 겠어? C는 그래서 - 오, 난 여전히 너무 싶어요 - ALI : 우리가 다시 대문자로 소문자로 변환하는 이제다면 우리 너희가 말한대로, ^ 작업을 수행. 롭 : 당신이 일을 할 수있는 다른 방법이 있습니다. 비트 연산자의 많은 측면에서 아주 쉽게 정의로 끝나게 다른 비트 연산자. 그래서 ^ 또는 전혀 사용하지하려고했지만 ^ 완벽하게 괜찮 았는데. ALI : 좋아, 그럼 우리는 기본적인에게 마지막 문제에 갈거야 - 마지막 문제는 바이너리에 정보를 변환하는 것입니다. 따라서 예를 들어, 50를 가지고 있고, 그리고 당신은 그걸로 변환 110010이 진. 그리고 너희들이 모든 강의에서 이진에 대해 알고있을 거라 생각합니다. 그리고 당신은 또한에 모든 주요 0s를 넣어해야되지 않습니다. 롭 : 당신은 지금 그 부분을 무시할 수 있습니다. 첫 번째 패스, 당신은 최고의 0s이 있다는 것을 때문에 작업을 수행 할 수 있습니다. 우리가 시간이 있다면 그리고 우리는 더 선도적 인 0s이없는 것을 수정할 수 있습니다. ALI : 그럼 걱정하지 않습니다. 그냥 바이너리에 들어보세요. 시작하는 좋은 장소가 될 것입니다 - 롭 : 우리는 정수를 요청해야합니다. ALI : 오, 그래, 좋은 하나. 우리는 함께 시작할 수 있습니다. 그래서 당신은 프롬프트를 변경할 수 있습니다. 대신 캐릭터의 자, 이제 우리는 정수를 다루고 있습니다. 쿨? 롭 : 이제 무엇 우리의 DO-하면서 조건이 될가요? 이 음수가 아닌 정수에 대해 묻는 데요. ALI : 우리가 다른 무언가에 대한 사용자에게 메시지를 표시 유지하려면 언제? 가 0보다 작합니다. ALI : 맞아. 롭 : 나는이 0보다 적은 있지만. ALI : 이제 우리는 그것을 변환하고 싶습니다. 너희들은 무엇을해야할지 어떤 아이디어가 있습니까? 모든 inklings? 그래. 스피커 39 : 우리는 그것을 변환해야합니까, 아니면 우리가 0s와 1S 일부를 인쇄 할 수 있습니다 그 오른쪽 숫자는? 당신은 루프에 대한 작업을 수행하고 2 파워에 의해 계산시겠습니까? 롭 : 네. 당신은 바이너리 내가 변환 할 필요가 없습니다 - 내가의 이진 표현은 내가 내부 맞지 않습니다. 당신은 내가의 이진 표현을 인쇄해야합니다. ALI : 즉, 두 개의 힘을 타고 가야 할 필요가 없습니다. 롭 : 나는 이미 바이너리로 저장되기 때문이죠 있으므로 필요 없어요 바이너리로 변환합니다. 단의 이진 가서하고, 인쇄 할 수 있습니다. 당신이보고 싶지 때문에 당신은 비트를 사용하여 필요 해요 실제 비트. 당신이 비트를 사용할 필요가 있지만, 제발하지 않습니다. 그리고 그건 사실이야 - 당신은 2로 곱하여 두 힘을 해드 할 수 있습니다. 우리는 마지막 두 이진 비트 연산자 중 하나를 통해 가서, 어떤이입니다. 그래서 찍을 때 - ALI : 당신이 둘 다 통과 할 수 있습니까? 롭 : 네. 그럼 9로 가자. 따라서 9 왼쪽 시프트 1 - 어떤 이동 수단을 떠난 것은 바로 왼쪽에있는 모든 비트를 이동하고 0을 삽입합니다. 그래서 우리는 왼쪽 하나에 9 모든 비트를 이동 우리를 제공합니다 위치 - 그래서 우리가 이동 한 것을 모든을 떠나에 0을 삽입 오른쪽. 우리 두 남긴 이동했다면, 우리는 두 개의 남긴 모든 걸 옮겨 것 그리고 메워 두 0s를 삽입합니다. 질문이 있으십니까? ALI : 그럼 오른쪽 이동은 비슷한 일을하지 않습니다. 너 9 오른쪽 이동 1가 있다면 당신은로 전부 이동 그래, 당신이 대신 자리, 그래서 100 잃게됩니다. 롭 : 그럼 당신은 당신이 모든 할 일 비트를 잃는 것을 괜찮아 오른쪽에있는 방법입니다. 가 바로 교대의 다른 종류가 있지만, 기본적으로는 생각할 수 바로 2로 단지 분할로 이동. 그리고 당신은 2로 곱한으로 왼쪽 시프트를 생각할 수 있습니다. 따라서이 변환하는 경우 - 당신이 실제로 오면, 10,010 같다 구 교대 1, 변환하는 경우 바이너리 통해, 그게 무엇인지 알아 냈어, 단지 18 것입니다. 우리는 2로 곱하면됩니다. 1001 왼쪽 시프트 2는 36가 될 것입니다. 우리는 4가 곱합니다. 오케이, 좋아,이 하나의 편리한 비트 연산자 인 것. 더 혼란? 너희가 그것을 사용해 하시겠습니까? 아니면 그냥 오른쪽 이동하여 시작할 수 있습니다? 롭 : 우리는 아마 들어 점프해야합니다 ALI : 네, 좋아요. 롭 : 그리고 함께 통과. ALI : 음 저는 그냥 들어갈 수 있습니다. 그는 처음에 말한만큼, 우리가 조금씩 통과거야. 그래서 우리는 루프를해야 할 것 같습니다. 사람이 제발이 루프의 가장 좋은 종류의 아이디어가 있습니까? 우리는 동안 루프를 가지고 수행 - 동안 루프, 루프에 대한. 스피커 40 : DO - 동안 루프? 롭 : 그럼 내가 전에 한 말을 기억, 우리는 어떻게 - 동안 사용하는 루프는 사용자 입력을받을 수 있습니다. 당신은 거의 언제나 다른 어떤를 사용하지 않습니다. ALI :의 문제 일 - 동안 루프는 있는지 확인하기 전에 뭔가를 수행합니다 상태. 그래서, 뭔가 나쁜 일을 할 수 - 상처, 좋아 - 수없는 일을하는. 그래서 먼저 확인하고 싶습니다. 롭 : 여기가 루프 할 - 동안 사용할 수있는 많은 사건입니다,하지만 사람들 이 사용자 입력이 아니면 당신이 그들을 사용하지는 않습니다. 그래서 우리는 사용한 우리의 DO-하면서 루프가 나는을 할 수 있습니다. 우리의 루프는 루프로하려는 몇 번거야? 우리는 전의 비트의 각 이상의 루프로 싶습니다. 내가 얼마나 많은 비트입니까? 스피커 41 : 32. ALI : 그래. 롭 : 그래서 32 비트가 있습니다. 우리는 32하고 싶지 않아요. 우리는 대신 sizeof 인사를하고 싶군요 - 이는 해당 클래스에 아직 못 봤어? ALI : 아뇨. 롭 : 왜 그렇게를 사용하는 말 않습니다 - sizeof (int는) 번 8 - ALI는 : 그럼, sizeof입니다 - 스피커 42 : [INAUDIBLE] ALI : 흥미 롭군. 그래서, sizeof는 당신을 알려줍니다 내장 된 C 함수입니다 의 비트 수 - 롭 : 바이트. ALI : 바이트, 죄송합니다 - 변수가 값을 저장하기 위해 가지고 바이트 수. 난 그가 수업 시간에 갔다 생각 그럼, int는 아마 4 바이트입니다. 쿨? 롭 :하지만 당신은 int는 4 바이트입니다 알 필요가 없습니다. 당신은 말 할 수 있어야합니다 - 당신은 4 바이트를 얻을 sizeof를 (INT)를 사용합니다. 그래서 몇 가지 사실은 중요합니다. INT는 4 바이트하지 않을 수 있습니다. 다른 컴퓨터에서 int는 8 바이트 일 수 있습니다. 그러므로이 프로그램은 해당 컴퓨터에서 작동하지 않을 것입니다 당신이 하드 코딩 된 32 때문에 해당 컴퓨터의 비트 때 64 비트로 발생합니다. ALI : 그래서 당신은 당신이 반전 할 비트의 총 수 있습니다. 롭 : 그리고 바이트와 비트 사이의 차이는 없습니다 바이트의 8 비트입니다. sizeof (int는)이 4 바이트를 반환합니다 그래서, 우리는 그를 곱해야 (8)에 의해 32 비트를 얻으려고 말야. ALI : 좋아, 그럼 우리가 최대 알려 주시면에서 가고 싶은 우리가 알아 - 우리는 모두를 가고 싶어. 그래서 우리는 0에서 numBits에 가고 싶어요. 그래서 사람이 거기에 루프를 작성하는 방법을 알 수 있습니까? 누구? 스피커 43 : [INAUDIBLE] ALI는 : 그래서 당신은에 0번째 비트에서 숫자 i를 통과하려면 첫째 비트, 두 번째 비트, 세 번째 비트, numBits까지. 당신이 갈 수있는 비트의 최대 수입니다. 롭 : 우리가 무언가 X 시간을 무엇을하고 싶은지 우리가 사용하는 일반적인 루프은 무엇입니까? ALI :하십시오. 좋아요. 그래서 우리는에 있습니다. 그리고 우리는 내가 할 일이 아니 반복자를 만들 수 있습니다. 롭 : J. ALI : J = 0. 그래서 우리는 0에서 시작합니다. 당신이있는 동안 그리고 우리는 확인 할 수있는 조건을 할거야 그것을 통해 매번가는 - [목소리를 INTERPOSING] 롭 : J. ALI : J는 numBits 미만의 거리에 있습니다. 그들은 numBits이기 때문에 그래서 우리는, 하나를 동일 실제를하고 싶지 않아요 총, 우리는 0부터 시작합니다. 그래서 우리는 실제로 할거야 - 스피커 44 : 오. ALI : 인덱스 numBits 마이너스 1에서 종료하지 않습니다. 롭 : 우리는 0에서 31, 우리가 한 32 라벨을하지 않는 비트를 레이블을 붙입니다. ALI : 우리가 원하기 때문에 그리고 우리는 하나 할 때마다 증가 할거야 하나 하나를 확인합니다. 그래서 우리는 j를 갈 게요 + +. 스피커 45 : 왜 당신은 그렇게하는거야? 스피커 46 : 왜 모든 비트를 통해가는거야? 롭 : 그래서 우리가 모든 비트를 가고 싶어하고 - 그래서 우선은 우리가 어떤 번호가 있다고 가정 해 봅시다. ALI : 68. 롭 : 우리는 68 사용할 수 있습니다. 따라서 바이너리는 100,100거야. 그래서 내가 내부이며, 우리는 이러한 비트의 각으로 가고 싶어요. 이 1인가? 1 인쇄 할 수 있습니다. 이 0인가? 0을 인쇄 할 수 있습니다. 그럼 우리가 다음 비트에 이동합니다. 이 1인가? 1 인쇄 할 수 있습니다. 0입니까? 0을 인쇄 할 수 있습니다. ALI : 차가운, 알았어. 이제 우리는 그 비트가있는 곳의 정확한 색인에있다. 우리가 어떻게 특정 하나를 선택 할 수 있습니까? 자, 우리가 J = 0에서 말 하잖아, 그래서 우리는 비트 0 색인을 확인하고 싶습니다. 그래서,이 경우에,이 사람. 그래서 지금 우리가 확인 어떻게해야할까요 - 오,이게 그 것이다. 롭 : 네. ALI : 죄송합니다. 우리가 어떻게 의미에서, 그 하나를 선택해야합니까? 가 0 또는 1인지 우리가 어떻게 확인까요? let's 자 - CLASS : 그리고 하나? ALI : 그리고? 그래. 롭 : 그럼 우리가 이미 하나를 가정 해 보겠습니다. 이 및 다음이는 1 또는 10 살때 여부를 반환합니다. ALI : 그럼 우리가 내려 가서 할 수 있습니다. 너희들이 말대로 우리는 & 기능을하는 중, 수행 할 수 있습니다. 롭 : INT - 어떻게이 말을하고 싶어 - isOne = 난. 그리고 우리가보고 할 일이 첫 번째 비트에 대한, 우리는 전 & 1을 다하고 있습니다. 이제 어떻게 우리가 및 두 번째 비트에 의해하려는거야? 스피커 47 : 2. 롭 : 네, 우리가 2임을 두 번째. ALI : 당신은 1 왼쪽 하나 이상 이동 한 것을 알 수 있습니다. 그래서 우리는 그 기능을 수행하는 비트 연산자를 알게되었나? 롭 : 다음 - ALI : 그래, 맞아, 맞아. 그럼 왼쪽 시프트입니다. 대신 항상 1로 확인 때문에, 우리는 그것을 이동거야. 그리고 우리가 몇번을 이동하는거야? 우리가 0번​​째의 하나를 선택하는 경우 다음에 우리가 영 이상을 움직일 수있을거야. 네, 맞아요. 그래서 J하여 이동 떠났다. 좋아요. 그래서 지금 우리가 아는 - 우리는 다음 1면의 정수를 가지고 있고, - 여기에 부정 행위가 너무 롭의 종류 - 그래서 지금은 앞서가는 그는, 그냥 실제로 1이면 그 소리 만하는거야 1 true로 평가하기 때문에 그래서 우리는 isf isOne 1과 동일한 말을 할 필요가 없습니다 - 그래서 isOne 경우, 우리는 하나를 인쇄하고, 그렇지 않으면 우리는 0을 인쇄 할 수 있습니다. 롭 : 그럼 우리의 프로그램이 전체 버그가 있습니다. 음, 첫 번째 질문입니다. 스피커 48 : 당신이 이제까지 네 개의 작업 부분 안쪽에 isOne을 넣어 수 그때가 마지막 부분으로 자신을 이동습니까? 그럼 isOne는 1와 동일 - 롭 : 네, 당신은 할 수 있습니다. 우리는 실제로 한 번 우리가 생각하려고하고 있어요하는 버그를 수정하는 표시 할 수 있습니다 여러분 모두와 함께 토론합니다. 우리가 일을하고있어 주문을 확인할 수 있습니다. 이 이진 표현을 감안할 때, 우리는 0번째 비트부터 시작합니다. 가 0 인 경우, 우리는 인쇄하는 - 음, 0, 그래서 우리는 0을 인쇄하고 있습니다. 그런 다음 두 번째 비트로 이동합니다. 이 0, 그래서 우리는 0을 인쇄 할 수 있습니다. 그런 다음 우리는 세 번째 비트로 이동합니다. 그것은 1, 그래서 우리는 1 인쇄 할 수 있습니다. ALI : 그럼 그 뒤로거야. 그럼 너희들은 우리가 문제를 해결하고 다른 길을 갈 것을 권장합니까? 스피커 49 : [INAUDIBLE] 롭 : 네. 대신 0에서 numBits에가는 그래서, 우리는 우리가 numBits 비트에서 0로 이동합니다. ALI : 그럼 [안 들리게] 항상 다른 길을 갈 수 있습니다. 롭 : NumBits 마이너스 1 마지막 이하이기 때문에 - ALI : IT는 0부터 31로 이동 때문입니다. 당신이 가서하지 않도록 그리고 우리는 항상 0보다 큰인지 확인 할게요 너무 멀리 오른쪽으로. 그리고 항상 오른쪽으로 가고 1 빼야합니다. 롭 : 그럼 이제 우리는 역 루프를 가지고 있고, 그 수는 인쇄로 돌아 올바른 방법은 아니에요. 스피커 50 : 당신이 너무 교대 일을 변경해야하지 않아? ALI : 그럼 더 없습니다. 롭 : 우리는 지금을 제외하고, 같은 정확한 작업을하고 있어요 반대 순서를 유지해야합니다. 대신 numBits으로 변화하고 너무 마이너스 1 어떤이 받아 비트 대신 마지막 일의입니다, 우리가 먼저 할 수 있습니다. 여기를 반대로하면, 우리는 모든 순서를 반대로 그 안에 발생합니다. 하지만 우리 모두의 내부에 무슨 일이 변경하지 않습니다. ALI : 그 말이 돼? 처리? 좋아, 그럼 다른 사람은 다른 개념 질문이 무엇입니까? ALI : 우리는 그의 지점으로 이동하기 전에 어떤이 - ALI : 오른쪽 모두 잘 이동합니다. 롭 : 대신 우리로 j를 사용하는 - 대신 항상 왼쪽 시프트 제이처럼에 의해 이동하기 j를 사용하는, 내가 생각 당신은 J 자체를 사용하는 같은 말은. 뭐 때문에 J - J = 1 << 31 - 지금은 어렵습니다 같아요. 내가 원하는거야? 나는 << 31 것 같아요. J> = 1. J >> >> isOne, I & J - 그래서 지금 대신 사용 - ALI : 당신은 지속적으로 대신하는 데에 j를 이동 을 확인 색인을 생성합니다. 그게 나쁘다는 건 아냐. 우리는 이와 비슷한 논리를 사용하고 있습니다. 다시 치면 - 아,하지만 그건을 잃을거야. 좋아, 당신은 다시 입력거야. 당신은 우리가 시간 1 << 제이 금액이 표시, 우리는라면 한 증가에 의해 J에게 매일 시간을 증가하지만,이 시간 대신에 그들은 루프 내부의 상단에 J의 증가을 다하고 있습니다. 그래서 대신에 항상 아래로 이동 - 롭 : 루프의 처음 반복, 우리는 제이슨 만이 있습니다. 루프의 다음 반복은 01000입니다. 다음 반복이 있다는 것입니다. 우리는 매우를 누르까지 1 막 확산 계속 것입니다 끝은 어디 지금이입니다. 다음, 1, 밀고 될 것입니다와 j는 더 이상 큰되지 않습니다 이상 또는 1 같다. 나는 또한 0보다 큰, 같은 차이를 넣어 수 있습니다. 그리고 바로 그 거에요. 질문이 있으십니까? 그래. 스피커 51 : [안 들리게] 롭 : 같은이야 그래서 - 당신은 J + = 3 본 적 있어요? 그래서이 J = J + 3과 동일합니다? 당신은 C.의 거의 모든 연산자에 대해 그렇게 할 수 J는 >> = 3은이 J = J >> 3 동일. 그래서 그런 비트 연산자와 함께 사용할 수 있습니다. 그리고 여기에 31 넣어 말았어야 했어요. 1 - 나는 numBits을 했어야. ALI : 예이, 아니 마법 숫자. 그래, 너희들이 가야하므로 경우는,하지만 4시이야 -하지만 이해가 무엇입니까? 너희들은 다른 질문이 있습니까? 롭 : 나는 또한 우리가 원한다면 그 속에 던져 줄 - 그는 전혀 3 원 연산자를 논의 했습니까? ALI : 아니요 괜찮아요. 롭 : 그래서 다음 시간을 조사 수 있습니다. ALI : 네, 정말? 이제 방금 게재되고 있습니다. 롭 : 아니오, 지금은 괘 - 이 사람들이 관심을 당하지이며, 지금은 조사를 갈거야. 이제, 그 한 단계에서 같은 일을하지 않습니다. 확인 그래서 일단, I & J 1인가요? 그게 사실인가요? 이 경우 0을 인쇄, 다른, 1 인쇄 할 수 있습니다. ALI :하지만 일을하면 다른 방법도 완벽하게 유효합니다. 이 같은 논리가 있습니다. 하나 인 것 그게 아냐 - 롭 : 그것은 단지이기 때문에이 시점에서, 우리는 그 중괄호를 제거 할 수 있습니다 루프에 대한 한 줄. ALI : 좋아요, 그게 말이 돼? 그건 점프의 종류이었다. 그러나 더 때문에, 문법, 그냥했습니다. 쿨? 또 다른 질문 있나? 롭 : 알았어. ALI : 좋아, 좋아. 섹션 주셔서 감사합니다.